java - facebook:为什么我不能从应用程序向用户发送电子邮件?

标签 java facebook

即使我有权限,我也无法向我的应用用户发送电子邮件。

我正在使用 java 库,尽管我认为它与此无关。

long uid = ...;
Collection<Long> uids = new ArrayList<Long>();
uids.add(uid);
FacebookXmlRestClient client = new FacebookXmlRestClient(api, secret);
boolean sendEmailPerm = client.users_hasAppPermission(Permission.EMAIL,uid);
System.out.println("Can send email: "+ sendEmailPerm);
Collection<String> sent = client.notifications_sendTextEmail(uids, "subject", "body");
System.out.println("Succesfully sent email to: "+sent);
sent = client.notifications_sendFbmlEmail(uids, "subject", "body");
System.out.println("Succesfully sent email to: "+sent);

我正在尝试使用 fbml 和文本电子邮件。我还可以获得用户的 proxied_email 属性,但是当我使用我的常规邮件客户端向该地址发送电子邮件时,邮件没有到达。

输出是:

Can send email: true
Succesfully sent email to: []
Succesfully sent email to: []

最佳答案

您的应用程序是在 Facebook 应用程序设置中定义为桌面应用程序还是 Web 应用程序?

如果它被定义为桌面应用程序,您需要为您发送电子邮件的用户提供当前有效的 Facebook session key 。这可能就是您所缺少的。

如果在您发送电子邮件时用户未登录到您的应用程序/Facebook,您将需要请求 offline_access 扩展权限,该权限允许您获取并保存一个不会过期的“无限”Facebook session key 以在发送时使用电子邮件。

关于java - facebook:为什么我不能从应用程序向用户发送电子邮件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2422616/

相关文章:

java - 我可以使用 printComponent 而不必先将组件绘制到屏幕上吗?

android - 如何使用 multipart/form-data 发布 facebook 照片

facebook - 是否有一个端点我们可以使用页面访问 token 查询并发送 feed 目标参数以获得估计的覆盖面?

asp.net-mvc - 从 ASP.NET MVC 5 中的 Facebook v2.4 API 访问 OAuth ExternalLoginCallback 中的电子邮件地址

javabridge 设置/安装问题

java - 从 azure 登录获取 token

java - 使用自定义工作流程更新节点属性 AEM

php - 如何生成唯一的仅整数 ID,如 Facebook Twitter

python - 在 Windows 10 中找不到 Heroku 命令

java - 写入 JsonObjectRequest 内的 boolean 值