Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/facebook/8.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 从该页面本身更新facebook页面状态_Php_Facebook_Facebook Graph Api - Fatal编程技术网

Php 从该页面本身更新facebook页面状态

Php 从该页面本身更新facebook页面状态,php,facebook,facebook-graph-api,Php,Facebook,Facebook Graph Api,我正在尝试更新我的页面的状态(从我的页面)。我已成功使用以下代码发布到页面的墙上: require_once 'facebook-php-sdk/src/facebook.php'; // Create our Application instance. $facebook = new Facebook(array( 'appId' => '...', 'secret' => '...' )); $attachment = array( 'access_token' =

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

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);
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);
但是帖子显示我从我的帐户(即:Joe Blogs)发布到页面,我希望它显示它是由页面本身发布的(即:页面名称)

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


任何帮助都将不胜感激。

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

我认为应该是这样的:

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

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

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

$pageID = "872348971237345"; //obtained from page's url

$status = $facebook->api($pageID.'/feed', 'post', $attachment);

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

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

这里已经解释过了(http://developers.facebook.com/docs/api#auth)在“页面模拟”下

我就是这样做的

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

https://graph.facebook.com/oauth/authorize?client_id=...&redirect_uri=...&scope=manage_pages
您需要将客户端id与应用程序id一起插入,并插入重定向url-您将进入一个页面,该页面将要求您授权(您应该同意:)

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

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);
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);
这将打印出您管理的页面的详细信息,并访问这些页面的\u令牌(宾果!)


然后,您可以使用该/那些访问令牌,并将其插入我在上面发布的代码中,然后将其从您的页面发布到您的页面。:)

我刚刚试过,没有什么不同。我假设你提到了“你的页面id”,这是你访问该页面时在url中看到的实际id?谢谢Jamie,这就是我目前构建代码的方式(如上所述),它正在工作-但当它发布到我的页面时,它表明该帖子来自我-我希望它看起来像是来自页面本身的帖子。ie:PageName:Post。而不是我的名字:Post。