[英]How can I upload photos to album using Facebook Graph API
這是代碼:
$file= 'bbbb.jpg';
$data = array(
basename($file) => "@".realpath($file),
"caption" => "Uploaded using graph api",
"aid" => '13595',
"access_token" => $accessToken,
'method' => 'photos.upload'
);
$sds =$facebook->api($data);
這是錯誤
未捕獲的CurlException:26:創建formpost數據失敗
該怎么辦?
以下是使用Graph API上傳照片的各種方法。 這些示例假設您已實例化$ facebook對象並為當前用戶提供有效會話。
此示例將照片上傳到當前用戶的默認應用程序相冊。 如果相冊尚不存在,則會創建相冊。
$args = array('message' => 'Photo Caption');
$args['image'] = '@' . realpath($FILE_PATH);
$data = $facebook->api('/me/photos', 'post', $args);
print_r($data);
此示例將照片上傳到特定相冊。
$args = array('message' => 'Photo Caption');
$args['image'] = '@' . realpath($FILE_PATH);
$data = $facebook->api('/'. $ALBUM_ID . '/photos', 'post', $args);
print_r($data);
此示例將照片上傳到需要訪問令牌的特定相冊。
$args = array('message' => 'Photo Caption');
$args['image'] = '@' . realpath($FILE_PATH);
$data = $facebook->api('/'. $ALBUM_ID . '/photos?access_token='. $ACCESS_TOKEN, 'post', $args);
print_r($data);
你的$ data數組應該有“message”而不是“caption”,同樣,刪除“aid”,“method”和“access_token”
你的$ data必須有文件數據和“消息”,就是這樣。
$sds =$facebook->api('/me/13595/photos', 'POST', $data);
而不是13595只使用變量與專輯輔助
另外,如果需要,access_token最好附加到api uri,如下所示:
$sds =$facebook->api('/me/13595/photos?access_token='.$access_token, 'POST', $data);
另外,如果php sdk不適合你,我已經成功使用了cURL,如果你的php安裝支持它。 在這種情況下,請參閱使用Facebook的Graph API將照片上傳到相冊的 cURL示例
最新版本的Facebook PHP SDK無法使用上述示例,而無需對代碼進行以下更新。
class Facebook {
...
*Line #539*
protected function makeRequest($url, $params, $ch=null) {
if (!$ch) {
$ch = curl_init();
}
if( isset($params['doMultiPart']) ) {
$doMultiPart= true;
unset($params['doMultiPart']);
} else {
$doMultiPart= false;
}
$opts = self::$CURL_OPTS;
$opts[CURLOPT_POSTFIELDS] = $doMultiPart ? $params : http_build_query($params, null, '&');
...
基本上問題是PHP SDK使用“curl_setopt_array”,如果你傳遞一個url編碼的字符串作為選項值它將傳遞數據作為application / x-www-form-urlencoded當你真正想要的是multipart / form-數據 ; 要做到這一點,我們只需切換到傳遞選項數組,如果我們在params數組中有一個doMultiPart參數。
這是一個快速的黑客,我把它放在一起工作,可能需要檢查代碼,以確保它不會破壞你正在做的其他事情。 否則享受。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.