如何通过代码向Facebook好友发送电子邮件或消息

时间:2011-07-19 10:05:46

标签: java facebook-graph-api facebook janrain facebook-rest-api

我一直在尝试阅读(剪切)我在Facebook帖子丛林中的方式,通过代码向我的Facebook好友发送消息或电子邮件。 到目前为止,我已经找到了Facebook REST API: https://developers.facebook.com/docs/reference/rest/notifications.sendEmail/

使用测试工具进行测试时,只能将邮件发送到帐户 您已登录。不是已授予权限的帐户 应用。我正在为其他用户回复的是:

"error_code": 200,
"error_msg": "Permissions error",
"request_args": {...}

此API已弃用,将由GRAPH API替换: http://developers.facebook.com/docs/reference/api/

在此API中,它似乎不是任何电子邮件发送,但存在消息:

http://developers.facebook.com/docs/reference/api/message/

但这只允许阅读信息...... 发送内容的唯一方法是发布到用户墙,即 我做的事情想做。

所以我的问题是:

  1. 是否允许发送电子邮件或邮件?

  2. 如果是,我从哪里开始?我应该使用什么API(JAVA)?

  3. 有没有办法通过Janrain这样做,我发现的唯一的事情是 在墙上做吗?

  4. 奖金问题=)

    1. 为什么Facebook难以找到关于此的信息?
    2. ****编辑*****

      为了测试Graph API,我使用了位于https://developers.facebook.com/tools/explorer/的测试工具。在那里我输入了我的脸书ID并执行了GET:

      https://graph.facebook.com/my.id
      

      我得到的是关于我的帐户的一些信息,但没有电子邮件

      {
      id: "mypersonalfacebookid",
      name: "my name",
      first_name: "my",
      last_name: "name",
      link: "http://www.facebook.com/my.name",
      username: "my.name",
      gender: "male",
      locale: "en_US",
      type: "user",
      }
      

      这没关系,因为我没有输入任何访问令牌。第二步是从https://developers.facebook.com/apps为我的应用程序输入访问令牌,已授予用户my.name访问my.name的电子邮件: priv

      我得到了什么:

      {
        id: "mypersonalfacebookid",
        name: "my name",
        first_name: "my",
        last_name: "my name",
        link: "http://www.facebook.com/my.name",
        username: "my.name",
        work: [
          {
            employer: {
              id: "11111111111111",
              name: "CooolCompany.com",
            }
            with: [
              {
              },
            ]
            from: {
            }
          },
        ]
        education: [
          {
            school: {
              id: "11111111111",
              name: "Studied Computer Science",
            }
            type: "College",
          },
        ]
        gender: "male",
        email: "my.name@gmail.com",
        timezone: 2,
        locale: "en_US",
        verified: true,
        updated_time: "2011-07-20T17:12:26+0000",
        type: "user",
      }
      

      冷却电子邮件,但如果我为其他用户授予他/她帐户相同权限的用户:

      {
        id: "xxxxxx",
        name: "My Friend",
        first_name: "My",
        last_name: "Friend",
        link: "http://www.facebook.com/my.friend",
        username: "my.friend",
        hometown: {
          id: "12345",
          name: "Cool Town",
        }
        location: {
          id: "1111111",
          name: "Somewhere",
        }
        gender: "female",
        locale: "en_US",
        updated_time: "2011-06-29T19:21:38+0000",
        type: "user",
      }
      

      这里没有电子邮件!为什么呢?

2 个答案:

答案 0 :(得分:3)

首先,Facebook很难找到有关其API的信息。实际上,您可能通过使用REST API自行调用它,因为那个已被标记为已弃用。

我建议您使用GRAPH API,并阅读使用OAuth进行身份验证。

在您的请求中,您必须要求许可才能执行其他操作(标准权限除外)。我的猜测是你没有要求获得发送消息或电子邮件的许可。

答案 1 :(得分:3)

Q值。如何向FB用户发送电子邮件?

  1. 创建应用。
  2. 让用户授权应用(请求访问GDP中的电子邮件地址 - 权限)。
  3. 使用您的电子邮件解决方案向用户发送电子邮件。
  4. 完成。
  5. 查看图表API资源管理器:https://developers.facebook.com/tools/explorer/

    C @ Facebook