我有一个网站需要立即发布到用户的Facebook墙上,以及之后的某个时间点(可能是1小时到3天之后,白天或晚上的任何时间),发布另一条消息发送给用户的墙。
为此,我向用户清楚地解释将要发生什么,然后我连接到他们的Facebook帐户,要求发布权限(为用户生成权限对话框)。那时我可以立即将第一条消息发布到他们的墙上。之后,当它将第二条消息发布到他们的墙上时(也可能是任何时间,用户早已离开),我的服务器将收到一条消息。我会用一些识别信息(例如,用户的Facebook用户ID号)标记此消息,以便我知道要发布的墙。
我的问题是,我需要在本地数据库中保存哪些关于他们的Facebook连接的内容,所以我可以发布第二篇文章(将来某个未定义的位置,当用户离开时)?
我使用FB JS API并使用FB.login以我需要的权限登录Facebook等等。服务器端代码是PHP,所以在JS检索它们之后,我可以发送任何凭据我需要保存到PHP代码(通过Ajax)存储在本地数据库中。
对于发布第二条消息,它将是所有PHP(使用Facebook PHP SDK),因为控制台上没有用户/没有涉及Javascript。
我相信我寻求的答案应该是这样的:
当您最初连接到Facebook并且用户授予发布权限时,Facebook将返回 xyz 凭据数据。您需要将该信息存储在本地数据库中。使用FB用户ID作为密钥。
当您准备发布第二条消息并且您的PHP脚本启动时,从数据库中检索 xyz 信息(使用FB用户ID),然后使用 xyz 调用FB PHP SDK来实际发布你想在墙上发布的内容。
谢谢!
答案 0 :(得分:1)
这些步骤非常简单。让我解释一下 -
发布帖子,需要访问令牌;一旦用户授权您的申请代表您发布,您就可以使用app access token代表他发帖。那个!所以这是步骤 -
使用访问令牌,它只是app-id|app-secret
(请注意,不要在客户端公开此版本),以便在他/她的墙上发布。就像 -
$response = $facebook->api(
"/me/feed",
"POST",
array (
'message' => 'This is a test message',
....
'access_token' => "app-access-token"
)
);
但需要考虑的事项:
在授权时,用户可能/可能不会授予您发布权限,您可以在授权步骤之后使用/me/permissions
进行检查;所以你应该采取相应的行动。
以后,用户可以删除您的应用,或从应用设置中删除应用的权限。在这种情况下,您的发布脚本会给您授权错误;在这种情况下也适当处理。