0
我想將照片發佈到我可以管理的粉絲頁面(作爲正常時間線狀態Feed)。如何使用圖形api將照片發佈到粉絲頁面?
我的應用程序有以下權限:
email,publish_actions,read_stream,manage_pages
它完美對我自己的時間表。我也可以在頁面的時間線上張貼照片。但爲什麼不從應用程序?
我也搞錯了,認爲 photo_upload 不會起任何作用。也許Facebook已經刪除它。
我的應用使用Facebook PHP-SDK。
如果我試圖將照片上傳到一個粉絲頁面返回我的異常:
Fatal error: Uncaught OAuthException: (#200) Subject does not have permission to post photos on this page thrown
這裏是我得到了粉絲頁面的訪問令牌:
public function getPageData()
{
$arRS = $this->facebook->api('/me/accounts');
$pageData = new CFacebookClientPageData();
foreach ($arRS['data'] as $dataSet)
{
if (array_key_exists('name', $dataSet) && preg_match('/any\s*fan\s*page/i', $dataSet['name']))
{
$pageData->sCategory = $dataSet['category'];
$pageData->sName = $dataSet['name'];
$pageData->sAccessToken = $dataSet['access_token'];
$pageData->arPermissions = $dataSet['perms'];
$pageData->iPageId = $dataSet['id'];
}
}
return $pageData;
}
這裏是我嘗試將它張貼:
public function uploadPhoto(CFacebookClientPageData $user, CFacebookPhotoData $photo)
{
return $this->facebook->api('/' . $user->iPageId . '/photos',
'POST',
array(
'source' => '@' . realpath($photo->sLocalPath),
'message' => $photo->sMessage,
'access_token' => $this->sAccessToken
)
);
}
在其他一些文件,我這樣稱呼它:
$fb = new CFacebookClient($sAppId, $sSecret);
$fb->init();
$fb->setFileUpload(true);
$fb->init();
$user = $fb->getPageData();
$fb->setAccessToken($user->sAccessToken);
$photo = new CFacebookPhotoData();
$photo->sLocalPath = 'E:\php\www\logo.png';
$photo->sMimeType = 'image/png';
$photo->sMessage = utf8_encode('posted from my fresh app :-)');
var_dump($fb->uploadPhoto($user, $photo));
編輯:解決了我在下面的評論中提到的問題:我修正了它的代碼片段,但沒有在我的代碼中。
我這樣做,請看我編輯上面。 – alpham8
不應該'access_token'=> $ this-> sAccessToken是'access_token'=> $ user-> sAccessToken – Tobi
那麼你的'setAccessToken'方法是什麼樣的? – CBroe