申请发布到它的墙上

时间:2012-08-07 19:47:02

标签: facebook facebook-php-sdk facebook-wall

我找不到我正在尝试做的一个例子,很抱歉,如果这是一个重复的问题,但我已经找了几个小时。

我希望我的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,但如果我在我的代码中使用它,那么我仍然会收到错误。

4 个答案:

答案 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作业发帖的人。

  • 将manage_pages,publish_stream和offline_access权限授予 你的应用
  • 从图表api explorer
  • 中的我/帐户获取您网页的访问令牌
  • 在初始化fb对象后添加一行简单的代码

    $facebook->setAccessToken("XXXXX");
    

请注意,访问令牌必须是您从步骤2获得的PAGE访问令牌,并记住,如果您取消身份验证应用,则访问令牌将会更改。

答案 2 :(得分:0)

  1. 申请表需要询问manage_pages&amp; publish_stream权限。
  2. 从图表api page_access_token电话中获取您的网页/accounts。您拥有的每个页面都会列出自己的令牌。此令牌可以保存到数据库或在需要时访问。建议不要公开或共享此令牌。
  3. 使用“php-sdk”发帖。
  4. 请参阅: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资源管理器在帐户中查找访问令牌并将其剪切并粘贴到我的代码中。有什么想法吗?