11

グラフ API で奇妙な問題が発生しました。以下のコードは、添付された写真のサムネイル (「object_attachement」パラメーターで参照) を使用してユーザーのニュース フィードに投稿を追加するのに使用されていました。

ただし、投稿は期待どおりに作成されますが、サムネイルは空です。私が使用している photo_id は、ユーザーの写真コレクションに存在します。

以下のコードの結果。

    $photo_ID = "3415678920211";//Valid Facebook Photo ID...        
    $facebook = new Facebook($config);

    $attachment =  array(
            'access_token' => $user_token,
            'message' => "Test Message",
            'caption' => "THis is a Caption",
            'name' => "Test Name",
            'description' => "This is a description",
            'link' => 'http://url.com/',
            'object_attachment' => $photo_id,
    );

    $response = $facebook->api("/".$userID."/feed/", 'POST', $attachment);

私は何か間違ったことをしていますか?私はこれが機能していたと確信しており、私の下にある API で何かが変更されたのではないかと考えています。

[更新] 同じ POST で link と object_attachment の両方を指定すると、この問題が発生するように思われることに気付きました。上記からリンクパラメータを削除すると、更新が少し改善されますが、この投稿を存在させたい主な理由はリンクを追加するためであるため、これはあまり良くありません.

4

4 に答える 4

4

ユーザーが user_photos / friends_photos の許可を与えたと仮定しています。あなたはphoto_idを持っているので、これを試すことができます。

$pic = $facebook->api("/PHOTO_ID");
$pic_url = $pic->source;

$attachment =  array(
    'access_token' => USER_ACCESS_TOKEN,
    'message'      => "...",
    'caption'      => "...",
    'name'         => "...",
    'description'  => "...",
    'link'         => URL,
    'picture'      => $pic_url
);

追加した

ローカルサーバーのどこかにローカルに画像を保存する必要があります。この 記事のせいで

于 2012-12-21T08:00:53.170 に答える
3

アプリで pubish_stream を許可してから、curl を使用してこれを試してください:-

$attachment =  array(
        'access_token' => $access_token,
        'message' => 'i m success to using graph api for post wall',
        'name' => 'Wall Post using graph api',
        'link' => 'www.mysite.com',
        'description' => 'Using the Graph API, any Facebook users Wall feed may be accessed by using this URL:',
        'picture'=>'http://example.com/images/noimage.png'
 );
$url = "https://graph.facebook.com/$facebook_id/feed";
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL,$url);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, FALSE);
curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, 2);
curl_setopt($ch, CURLOPT_POST, true);
curl_setopt($ch, CURLOPT_POSTFIELDS, $attachment);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);  //to suppress the curl output
$result = curl_exec($ch);
curl_close ($ch);
print_r($result)
于 2012-12-25T08:56:36.980 に答える
3

もう通用しないと思います'object_attachment'=>$photo_id。に変更する必要があります'picture'=>$photo_url

$photo_Url = "link to your photo";//Valid Facebook Photo ID...        
$facebook = new Facebook($config);

$attachment =  array(
        'access_token' => $user_token,
        'message' => "Test Message",
        'caption' => "THis is a Caption",
        'name' => "Test Name",
        'description' => "This is a description",
        'link' => 'http://url.com/',
        'picture' => $photo_Url,
);

$response = $facebook->api("/".$userID."/feed/", 'POST', $attachment);

詳細はこちら

于 2012-12-16T01:08:59.393 に答える
2

フィードに投稿しています。代わりに LINK に投稿してください。

写真へのリンクをリンク フィードに投稿すれば、問題ないはずです。

https://developers.facebook.com/docs/reference/api/link/

目盛りで例を投稿します。

- - 後で - -

うーん、まあ、リンク オプションは満足できるものではありません。写真のサムネイルが表示され、それをクリックすると写真全体を見ることができますが、非常に醜いです。私は本当にそれがあなたが求めているものだとは思わない.

それで、私はさらにいくつかの実験を行い、あなたが言及したCDNエラーに遭遇し続けました. というわけでググってみたところ、以下が見つかりました。

ストリーム ストーリーでの画像の提供 2010 年 6 月 18 日 15:21

fbcdn.net ドメインでホストされている画像をストリーム ストーリーに含めることはできなくなりました。これらの URL に関連付けられた画像は、ストリーム ストーリー用に常に最適化されているとは限らず、場合によってはエラーが発生し、ユーザー エクスペリエンスが低下します。ストリームの添付ファイルがこのドメインの画像を参照していないことを確認してください。イメージはローカルでホストする必要があります。

これで、Facebookによると、やりたいことができなくなったということです。

于 2012-12-22T20:14:31.147 に答える