我有一个网站,需要立即发布到用户的Facebook墙,并在稍后的某个点(可能是1小时到3天后的任何地方,白天或晚上的任何时间),发布另一条消息到用户的墙。
要做到这一点,我清楚地向用户解释将要发生什么,然后我连接到他们的Facebook帐户请求发布权限(为用户生成权限对话框)。这样我就可以立即在他们的墙上发布第一条消息。之后,当我要在他们的墙上发布第二条消息时(这也可能是任何时候,因为用户已经离开很久了),我的服务器将收到一条消息。我将用一些标识信息(例如,用户的Facebook用户ID号)标记此消息,以便我知道该将消息发布到谁的墙上。
我的问题是,我需要什么具体保存在我的本地DB关于他们的Facebook连接,所以我可以使第2个帖子(在某些未定义的点在未来,当用户走了)?
我正在使用FB JS API并使用FB。login以我需要的权限登录Facebook,等等。服务器端代码是在PHP,所以JS检索后,我可以发送任何凭据,我需要保存到PHP代码(通过Ajax)存储在本地数据库中。
对于发布第二条消息,它将全部是PHP(使用Facebook PHP SDK),因为没有用户在控制台/不涉及Javascript。
我相信我正在寻找的答案应该是这样的:
-
当您最初连接到Facebook和用户授予权限发布,Facebook将返回xyz凭据数据。您需要将该信息存储在本地数据库中。使用FB用户ID作为key
-
当你准备发布第二条消息和你的PHP脚本踢,检索xyz信息从数据库(使用FB用户ID),然后使用xyz调用在FB PHP SDK实际发布你想张贴在他们的墙上。
谢谢!
步骤非常简单。让我解释一下-
发布一个帖子,需要一个访问令牌;一旦用户授权您的应用程序代表您发布,您可以使用应用程序访问令牌代表他发布。它!下面是步骤-
- 当用户授权你的应用程序成功地代表他发布时,只需在你的数据库中保存他/她的facebook id。
-
使用访问令牌,这只是
app-id|app-secret
(注意,不要在客户端暴露这个),在他/她的墙上发布。就像——$response = $facebook->api( "/me/feed", "POST", array ( 'message' => 'This is a test message', .... 'access_token' => "app-access-token" ) );
但注意事项:
-
在授权时,用户可能会/可能不会授予您发布的权限,您可以在授权步骤后使用
/me/permissions
进行检查; -
在以后的任何时候,用户都可以删除你的应用,或者从应用设置中删除你的应用的权限。在这种情况下,你的发布脚本,而给你的授权错误;