Nasıl Facebook Grafik API kullanarak albüme fotoğraf yükleyebilir

3 Cevap php

İşte kod:

$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);

Bu hata

Yakalanmamış CurlException: 26: formpost veri oluşturma başarısız oldu

Ne yapmalı?

3 Cevap

Burada Grafik API'sini kullanarak fotoğraf yüklemek için bazı çeşitli yolları vardır. Örnekler $ facebook nesne örneği ve geçerli kullanıcı için geçerli bir oturum var ettik varsayalım.

1 - Default Application Album of Current User

Bu örnek, geçerli kullanıcının varsayılan uygulama albüme fotoğraf upload olacaktır. Albüm henüz yoksa yaratılacaktır.

$args = array('message' => 'Photo Caption');
$args['image'] = '@' . realpath($FILE_PATH);

$data = $facebook->api('/me/photos', 'post', $args);
print_r($data);

2 - Target Album

Bu örnek, belirli bir albüme fotoğraf upload olacaktır.

$args = array('message' => 'Photo Caption');
$args['image'] = '@' . realpath($FILE_PATH);

$data = $facebook->api('/'. $ALBUM_ID . '/photos', 'post', $args);
print_r($data);

3 - Target Album with Access Token

Bu örnek bir erişim belirteci gerektiren belirli bir albüme bir fotoğraf upload olacaktır.

 $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);

your $data array should have "message" instead of "caption", also, remove "aid", "method", and "access_token"
your $data has to have the file data and "message", that is it.

$sds =$facebook->api('/me/13595/photos', 'POST', $data);

yerine 13595 sadece albüm yardımı ile değişken kullanımı nerede

gerekirse de, access_token en iyi bu gibi uri API eklenir:

$sds =$facebook->api('/me/13595/photos?access_token='.$access_token, 'POST', $data);

php sdk sizin için işe yaramazsa php kurulum destekliyorsa da, başarıyla yerine cURL kullandık. Bu durumda http://stackoverflow.com/questions/2718610/upload-photo-to-album/2728275#2728275 de cURL örnek görmek

Facebook PHP SDK son sürümü alışkanlık kodu aşağıdaki güncelleştirme olmadan yukarıdaki örneklerle çalışır.

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, '&');
...

Temelde sorun PHP SDK seçenek değeri olarak bunu bir url kodlanmış dize geçirirseniz o kadar veriyi geçecek "curl_setopt_array" kullanmasıdır application/x-www-form-urlencoded when what you really want is multipart/form-data {[(2) }] params dizi.

Bu bir hızlı hack Muhtemelen bunu yapıyorsun başka bir şey kırmak değil emin olmak için kodu gözden geçirmek gerekir, bir şey çalışma almak için bir araya koymak. Aksi halde zevk.