我找不到我正在尝试做的一个例子,很抱歉,如果这是一个重复的问题,但我已经找了几个小时。
我希望我的Facebook应用能够更新状态或发布到我管理的页面墙上:http://www.facebook.com/amazingjobsapp作为CRON作业的一部分。
我似乎无法找到有关如何执行此操作的任何示例。任何指针都非常感谢。
编辑:
我以前在下面进行编码,现在正在接受:
object(FacebookApiException)#11(8){[“result”:protected] => array(1){[“error”] => array(3){[“message”] => string(72)“(#200)用户未授权应用程序执行此操作”[“type”] => string(14)“OAuthException”[“code”] => int(200)}} [“message”:protected] => string(72)“(#200)用户未授权应用程序执行此操作”[“string”:“Exception”:private] => string(0)“”[“code”:protected] => int(0)[“file”:protected] =>串(86)
有人可以通过授予我的应用manage_page和publish_stream权限获取页面ID 413282938687554吗?
编辑2:如果我查看我的graph.facebook.com/me/accounts,那么它会在上面显示带有访问令牌的页面ID,但如果我在我的代码中使用它,那么我仍然会收到错误。
答案 0 :(得分:2)
您需要获得manages_pages
权限
<?php
$attachment = array(
'message' => 'this is my message',
'name' => 'This is my demo Facebook application!',
'caption' => "Caption of the Post",
'link' => 'http://mylink.com',
'description' => 'this is a description',
'picture' => 'http://mysite.com/pic.gif',
'actions' => array(
array(
'name' => 'Get Search',
'link' => 'http://www.google.com'
)
)
);
// To authenticated user's wall
$result = $facebook->api('/me/feed/', 'post', $attachment);
// To page's wall
$result = $facebook->api('page-id/feed/','post',$attachment);
// To user's wall
$result = $facebook->api('user-id/feed/','post',$attachment);
答案 1 :(得分:2)
好吧也许我错过了文档中的内容,但我发现解决方案如下:
请注意,这适用于尝试从cron作业发帖的人。
在初始化fb对象后添加一行简单的代码
$facebook->setAccessToken("XXXXX");
请注意,访问令牌必须是您从步骤2获得的PAGE访问令牌,并记住,如果您取消身份验证应用,则访问令牌将会更改。
答案 2 :(得分:0)
manage_pages
&amp; publish_stream
权限。 page_access_token
电话中获取您的网页/accounts
。您拥有的每个页面都会列出自己的令牌。此令牌可以保存到数据库或在需要时访问。建议不要公开或共享此令牌。 请参阅:http://developers.facebook.com/docs/authentication/
请参阅:http://developers.facebook.com/docs/reference/php/
注意:要在发布到墙上时模拟页面(即作为页面而不是当前用户发布),您必须使用具有manage_pages和publish_stream权限的Page access_token,如上面的页面访问标记所述。 / p>
示例:假设用户已经为Facebook安装并初始化了php sdk
<?php
if($user){
$vars = array(
'message' => "message goes here",
// you can uncomment below to enable an image with caption and link.
//'picture' => "image",
//'link' => "Link here",
//'name' => "Name here",
//'caption' => "Caption here",
'show_error' => true,
// comment out the access_token array below to post as a user instead of as page.
array('access_token' => YourPageAccessToken)
);
$testpost = $facebook->api('YourPageId/feed', 'post', $vars);
}
?>
如果您发现此答案有用或正确,请记住标记 它或将其标记为正确,因此未来的用户将有更轻松的时间 找到答案。
答案 3 :(得分:0)
好的,我以为我们已经修好了,但是当我实际登录到应用程序本身时,我们还没有这篇文章。
我正在使用Shawn的代码,其中包含来自“me / accounts /”的访问令牌的所有权限,用于AmazingJobs社区页面。
我肯定已经将manage_pages,发布流和offline_acess授予我自己的Facebook帐户,然后使用图形api资源管理器在帐户中查找访问令牌并将其剪切并粘贴到我的代码中。有什么想法吗?