我想解决如何发布到Facebook页面墙,当我的应用程序作为不同的Facebook用户(谁不是页面管理员)。如何发布到Facebook页面(如何获取页面访问令牌+用户访问令牌)
我得到一个范围,而测试的错误消息: 异常:200:用户未授权应用程序来执行此操作
页管理员访问应用程序,并接受了以下权限:publish_stream, manage_pages,offline_access
下面是代码我打算使用:
// Insert Page Administrators ID here
// This user is not the same user that is currently logged in and using the app
// This user is the page administrator who has authorised:
// - manage_pages
// - offline_access
// - publish_stream
$user_id = '123456789';
// Insert Page ID here
$page_id = '123456789';
$accounts = $facebook->api('/'.$user_id.'/accounts');
foreach($accounts['data'] as $account)
{
if($account['id'] == $page_id)
{
$page_access_token = $account['access_token'];
echo "<p>Page Access Token: $page_access_token</p>";
}
}
// publish to the wall on your page
try
{
$result = $facebook->api(array("uid" => $page_id,
"method" => "stream.publish",
"access_token" => $page_access_token,
"message" => $message,));
}
catch (FacebookApiException $e)
{
error_log('FB Error: Could not post on Page Wall. Page ID: ' . $page_id);
error_log('FB Error Message: ' . $e);
}
注:有可能在上面的代码PHP错误,正如我刚才拼接它的飞行,但它不是SO 3 M这就是我需要纠正的PHP错误,但更多的是我理解我如何去做这个过程。
问题: 如果没有用于页面管理员的活动用户访问令牌,我无法访问$ user_id/accounts信息。
我试图达到的最终结果是: 1.)一个普通的FB用户转到应用程序并提交一个表格 2.)该应用程序在FB页面墙上发布消息,该消息不是由FB用户拥有,但之前已被页面管理员授权,具有以下权限manage_pages,publish_stream和offline_access
Q1。由于页面管理员已经接受了适当的权限,为什么我不能生成活动的用户访问令牌,而实际的页面管理员用户没有登录到网站? Q2302。有没有办法,我可以得到页面管理员user_id相当于/ $ user_id /帐户,当作为一个不同的用户登录到Facebook(这就是为什么我不使用/我/帐户)?
Q3。请确认我对需要页面访问令牌发布到页面墙的理解是正确的(还是需要页面管理员的用户access_token - 请参阅Q1)?
Q4。任何人都可以获得每种access_token实际可以访问的资源吗?
如果您需要更多信息,请让我知道。 我花了最后几天的工作,我卡住了。
谢谢!
1.我已经要求此权限和可以确认页面管理员有这个为我的应用程序启用了许可 2.我了解需要权限,但我的应用程序将安装在客户Facebook页面上,并且随着用户创建新项目,我希望在客户Facebook页面墙上发布信息。因此,当试图发布消息时,使用该应用程序的用户不是Page管理员,而只是一个日常用户。 – James
3.感谢您澄清页面访问令牌用途的目的。这听起来好像我应该能够使用当前用户访问令牌发布到页面墙(由页面管理员拥有 - 已批准相应权限 - manage_pages/offline_access),但我得到身份验证错误(我将跟踪下载并更新我的文章) 4.我已经阅读了这些页面,似乎没有得到我需要的答案的运气。 错误日志:未捕获异常:240:需要指定有效用户 – James
如果您对其中任何一项有任何疑问,请发起一个新问题。对于一个用户遇到4个问题,然后被问到每个问题的后续问题,这对于用户来说并不公平。 – DMCS