什么Facebook信息我保存后张贴在墙上


What Facebook info do I save to post on the wall later?

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

要做到这一点,我清楚地向用户解释将要发生什么,然后我连接到他们的Facebook帐户请求发布权限(为用户生成权限对话框)。这样我就可以立即在他们的墙上发布第一条消息。之后,当我要在他们的墙上发布第二条消息时(这也可能是任何时候,因为用户已经离开很久了),我的服务器将收到一条消息。我将用一些标识信息(例如,用户的Facebook用户ID号)标记此消息,以便我知道该将消息发布到谁的墙上。

我的问题是,我需要什么具体保存在我的本地DB关于他们的Facebook连接,所以我可以使第2个帖子(在某些未定义的点在未来,当用户走了)?

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

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

我相信我正在寻找的答案应该是这样的:

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

  2. 当你准备发布第二条消息和你的PHP脚本踢,检索xyz信息从数据库(使用FB用户ID),然后使用xyz调用在FB PHP SDK实际发布你想张贴在他们的墙上。

谢谢!

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

发布一个帖子,需要一个访问令牌;一旦用户授权您的应用程序代表您发布,您可以使用应用程序访问令牌代表他发布。它!下面是步骤-

  1. 当用户授权你的应用程序成功地代表他发布时,只需在你的数据库中保存他/她的facebook id。
  2. 使用访问令牌,这只是app-id|app-secret(注意,不要在客户端暴露这个),在他/她的墙上发布。就像——

    $response = $facebook->api(
      "/me/feed",
      "POST",
      array (
         'message' => 'This is a test message', 
         ....
         'access_token' => "app-access-token"
      )
    );
    

但注意事项:

  1. 在授权时,用户可能会/可能不会授予您发布的权限,您可以在授权步骤后使用/me/permissions进行检查;

  2. 在以后的任何时候,用户都可以删除你的应用,或者从应用设置中删除你的应用的权限。在这种情况下,你的发布脚本,而给你的授权错误;