我保存哪些Facebook信息以便稍后发布在墙上?

时间:2014-05-01 23:13:22

标签: php facebook facebook-graph-api facebook-javascript-sdk

我有一个网站需要立即发布到用户的Facebook墙上,以及之后的某个时间点(可能是1小时到3天之后,白天或晚上的任何时间),发布另一条消息发送给用户的墙。

为此,我向用户清楚地解释将要发生什么,然后我连接到他们的Facebook帐户,要求发布权限(为用户生成权限对话框)。那时我可以立即将第一条消息发布到他们的墙上。之后,当它将第二条消息发布到他们的墙上时(也可能是任何时间,用户早已离开),我的服务器将收到一条消息。我会用一些识别信息(例如,用户的Facebook用户ID号)标记此消息,以便我知道要发布的墙。

我的问题是,我需要在本地数据库中保存哪些关于他们的Facebook连接的内容,所以我可以发布第二篇文章(将来某个未定义的位置,当用户离开时)?

我使用FB JS API并使用FB.login以我需要的权限登录Facebook等等。服务器端代码是PHP,所以在JS检索它们之后,我可以发送任何凭据我需要保存到PHP代码(通过Ajax)存储在本地数据库中。

对于发布第二条消息,它将是所有PHP(使用Facebook PHP SDK),因为控制台上没有用户/没有涉及Javascript。

我相信我寻求的答案应该是这样的:

  1. 当您最初连接到Facebook并且用户授予发布权限时,Facebook将返回 xyz 凭据数据。您需要将该信息存储在本地数据库中。使用FB用户ID作为密钥。

  2. 当您准备发布第二条消息并且您的PHP脚本启动时,从数据库中检索 xyz 信息(使用FB用户ID),然后使用 xyz 调用FB PHP SDK来实际发布你想在墙上发布的内容。

  3. 谢谢!

1 个答案:

答案 0 :(得分:1)

这些步骤非常简单。让我解释一下 -

发布帖子,需要访问令牌;一旦用户授权您的申请代表您发布,您就可以使用app access token代表他发帖。那个!所以这是步骤 -

  1. 当用户授权您的应用成功代表他发布时,只需将他/她的脸谱ID保存在您的数据库中。
  2. 使用访问令牌,它只是app-id|app-secret(请注意,不要在客户端公开此版本),以便在他/她的墙上发布。就像 -

    $response = $facebook->api(
      "/me/feed",
      "POST",
      array (
         'message' => 'This is a test message', 
         ....
         'access_token' => "app-access-token"
      )
    );
    
  3. 但需要考虑的事项:

    1. 在授权时,用户可能/可能不会授予您发布权限,您可以在授权步骤之后使用/me/permissions进行检查;所以你应该采取相应的行动。

    2. 以后,用户可以删除您的应用,或从应用设置中删除应用的权限。在这种情况下,您的发布脚本会给您授权错误;在这种情况下也适当处理。