【问题标题】:Update facebook page status from that page itself从该页面本身更新 facebook 页面状态
【发布时间】:2014-02-19 04:53:57
【问题描述】:

我正在尝试更新我的页面状态(从我的页面)。我已经使用以下代码成功发布到页面的墙上:

require_once 'facebook-php-sdk/src/facebook.php';

// Create our Application instance.
$facebook = new Facebook(array(
  'appId'  => '...',
  'secret' => '...'
));

$attachment = array(
'access_token' => "...",
'message'=> "Hello World"
);

$facebook->api('/pageId/feed','POST', $attachment);

但帖子显示我从我的帐户(即:Joe Blogs)发布到页面,我希望它显示它是由页面本身发布的(即:页面名称)。

还是我走错了路?我是否应该尝试更改页面的状态(如果可能)?

任何帮助将不胜感激。

【问题讨论】:

    标签: php facebook facebook-graph-api


    【解决方案1】:

    经过几天的努力,我似乎​​已经解决了这个问题。我会解释:

    我的帖子来自我自己而不是页面的原因是因为我使用的 access_token 来自我的帐户而不是来自页面。您需要从页面本身获取访问令牌。

    此处 (http://developers.facebook.com/docs/api#auth) 在“页面模拟”下进行了解释

    我就是这样做的。

    我首先通过使用此 url 授予我的帐户管理我拥有的页面的权限:

    https://graph.facebook.com/oauth/authorize?client_id=...&redirect_uri=...&scope=manage_pages
    

    您需要使用您的应用程序 ID 插入 client_id 并插入一个重定向 url - 您将被带到一个页面,女巫会要求您授权(您应该同意 :)

    然后在 php 中,我使用以下代码访问了我当前帐户和我管理的页面的详细信息:

    require_once 'facebook-php-sdk/src/facebook.php';
    
    $facebook = new Facebook(array(
      'appId'  => '...',
      'secret' => '...'
    ));
    
    $attachment2 = array(
    'access_token' => "..." //this is my current user access_token
    );
    
    $page =  $facebook->api('/me/accounts', 'get', $attachment2);
    print_r($page);
    

    这将打印出有关您管理的页面的详细信息以及这些页面的 access_tokens(宾果游戏!)

    然后,您可以使用该/那些 access_token 并将其插入我在上面发布的代码和 whala - 它会从您的页面发布到您的页面。 :)

    【讨论】:

      【解决方案2】:

      pageID 应定义为您尝试发布到的页面:

      $pageID = "872348971237345"; //obtained from page's url
      
      $status = $facebook->api($pageID.'/feed', 'post', $attachment);
      

      【讨论】:

      • 谢谢 Jamie,这就是我目前构建代码的方式(上图)并且它正在工作 - 但是当它发布到我的页面时,它显示该帖子来自我 - 我希望它看起来就像帖子来自页面本身。即:页面名称:帖子。而不是 MyName: Post。
      【解决方案3】:

      您需要将您的粉丝页面的 UID 添加到您的 api 调用中。

      我认为应该是这样的:

      $uid = 'your page id';
      $facebook->api('/pageId/feed', 'POST', $attachment, $uid);
      

      如果调用中没有提供 UID,则默认为会话用户。

      【讨论】:

      • 我刚刚尝试过,没有任何区别。我假设当您提到“您的页面 id”时,它是您在访问该页面时可以在 url 中看到的实际 id?
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-10-03
      • 2010-11-17
      • 1970-01-01
      • 1970-01-01
      • 2015-12-06
      相关资源
      最近更新 更多