0

アップロードした写真をユーザーのウォール/フィードに投稿するにはどうすればよいですか?

私のアプリケーションは、ユーザーの名前といくつかの情報を含む画像を生成します。証明書のようです。この画像をユーザーのプロファイルにアップロードしましたが、フィードに表示されません。だから友達はそれを見ていません。-で投稿してみました

$post = $facebook->api('/me/feed', 'POST', array(...)); 

しかし、Facebookでホストされている写真を投稿できないことに気づきました。しかし、Facebookには、画像を生成し、アップロードして壁に投稿するアプリケーションがたくさんあります。しかし、どのように?

4

2 に答える 2

1

Facebookがホストする写真をユーザーのウォールに投稿できます。簡単なウォールポストを実行しobject_attachment、画像のIDを含むパラメーターを含める必要があります。これは、表の下部近くにあるここに文書化されています。

詳細については、このブログ投稿をご覧ください。次の例も含まれています。

<?php
  $app_id = "APP_ID";
  $app_secret = "APP_SECRET";
  $post_login_url = "POST_AUTH_REDIRECT_URL";
  $photo_id = "PHOTO_ID";
  $wall_message = "MESSAGE_FOR_POST";
  $wall_link = "LINK_TO_POST";
  $user_id = "USER_ID";

  $code = $_REQUEST["code"];

  // Obtain the access_token with publish_stream permission 
  if (!$code) {
    $dialog_url= "http://www.facebook.com/dialog/oauth?"
      . "client_id=" .  $app_id
      . "&redirect_uri=" . urlencode( $post_login_url)
      .  "&scope=publish_stream";
    echo("<script>top.location.href='" . $dialog_url
      . "'</script>");
  } else {
    $token_url="https://graph.facebook.com/oauth/access_token?"
      . "client_id=" . $app_id
      . "&redirect_uri=" . urlencode( $post_login_url)
      . "&client_secret=" . $app_secret
      . "&code=" . $code;
    $response = file_get_contents($token_url);
    $params = null;
    parse_str($response, $params);
    $access_token = $params['access_token'];

    // POST to Graph API feed endpoint, which is the user's Wall
    $graph_url= "https://graph.facebook.com/" . $user_id . "/feed?"
      . "message=" . urlencode($wall_message)
      . "&link=" . urlencode($wall_link)
      . "&object_attachment=" . $photo_id
      . "&method=POST"
      . "&access_token=" .$access_token;

    echo '<html><body>';
    echo file_get_contents($graph_url);
    echo '</body></html>';
  }
?>
于 2012-07-15T10:51:46.017 に答える
0

あなたが言ったように、Facebookでホストされている画像をFacebookに投稿することはできません。私が見ているように、2つの選択肢があります。

  1. 画像をサーバーにダウンロードし、ユーザーフィードに再度アップロードします

  2. そのphoto_objectへのリンクをユーザーフィードに投稿するだけです。Facebookのクローラーは、そのリンクから関連データを正常に抽出し、投稿内の画像のプレビューを引き続き取得します。

photo_id-
例-https ://graph.facebook.com/10151812415573306 ( CocaColaのページの公開写真)を使用してGraph APIにクエリを実行すると、その画像に関する情報が得られます。データは次のようになります-

    {{
      "id": "10151812415573306"、
      "から": {
        「名前」:「コカ・コーラ」、
        「カテゴリ」:「食品/飲料」、
        "id": "40796308305"
      }、
      "写真": "https://fbcdn-photos-a.akamaihd.net/hphotos-ak-ash3/521913_10151812415573306_523748375_s.jpg"、
      "ソース": "https://fbcdn-sphotos-a.akamaihd.net/hphotos-ak-ash3/521913_10151812415573306_523748375_n.jpg"、
      「高さ」:332、
      「幅」:500、
       ..。
      "リンク": "https://www.facebook.com/photo.php?fbid=10151812415573306&set=a.99394368305.88399.40796308305&type=1"、
      "アイコン": "https://s-static.ak.facebook.com/rsrc.php/v2/yz/r/StEh3RhPvjk.gif"、
      "created_time": "2012-07-09T12:00:41 + 0000"、
      ..。

ユーザーフィードに投稿する必要のあるパラメーターはlinkパラメーターです-
https://www.facebook.com/photo.php?fbid=10151812415573306&set=a.99394368305.88399.40796308305&type=1

そのURLをユーザーフィード/ウォールに投稿すると、投稿には画像のプレビューと写真自体へのリンクが含まれます(Facebook内)。

于 2012-07-15T10:36:37.483 に答える