0

ウェブサイトからの FB Like に問題があります。ページ投稿とページ写真の 2 つの機能が気に入っています。I Like FB Post が機能し、Facebook ページの投稿と Web サイトの両方でいいねがカウントされます。しかし、写真をいいねしようとすると、ウェブサイトのいいねカウンターが 1 に増え、1 秒後に 0 に落ちます。

私は次の構成を持っています:

<div id="fb-root"></div>
        <script>(function(d, s, id) {
          var js, fjs = d.getElementsByTagName(s)[0];
          if (d.getElementById(id)) return;
          js = d.createElement(s); js.id = id;
          js.src = "//connect.facebook.net/en_US/all.js#xfbml=1&appId=111111111111111111111";
          fjs.parentNode.insertBefore(js, fjs);
        }(document, 'script', 'facebook-jssdk'));</script>

いいねボタン

'<fb:like href="' + urlToLike + '" send="false" layout="button_count" width="170" show_faces="false"></fb:like>';

次のような投稿と写真に使用される URL:

photoUrlToLike = 'http://www.facebook.com/photo.php?fbid=111111111111&set=a.502954436404881.121467.265145956852398&type=1&permPage=1';
postUrlToLike = 'http://www.facebook.com/mydummypage/posts/1111111111111111';

だから私の質問は、ユーザーは私のウェブサイトから投稿を好きになることができるのに、なぜ写真でもうまくいかないのですか? ここで何が欠けていますか?

編集

Facebookの写真APIを見つけました:

http://developers.facebook.com/docs/reference/api/photo/

これはかなり簡単に実行できるはずですが、今は何時間も実行できません。写真のAPIを引用:

likes


Create

You can like a photo by issuing a HTTP POST request to PHOTO_ID/likes connection with the publish_stream permission. No parameters necessary.

私のページのURLが次のとおりであると仮定します:

http://www.facebook.com/dummypage

私の写真付き身分証明書は4234234234131です。写真はダミーページの壁にあります。

投稿の URL はどのようになりますか? どの URL に POST リクエストを送信すればよいですか?

4

1 に答える 1

2

私は最近、同じ問題に悩まされています。数時間勉強した後、それは私のコードの問題でも、私の側の問題でもないことがわかりました。これは小さなバグで、Facebook にも報告されています。ここを確認してください: https://developers.facebook.com/bugs/530674523672388?browse=external_tasks_search_results_51fd2ae4d0e0e1621568068

もう 1 つ重要なことは、いいねは投稿では機能するが、写真では機能しないという質問です。しかし、私はそれとは異なるものを手に入れました。外部リンクのコンテンツやその他のコンテンツの添付を含む投稿でも同じ問題が発生します。

質問で述べたように、システムを使用していいねの投稿を管理しました。publish_stream 権限を使用して PHOTO_ID/likes 接続に HTTP POST リクエストを発行することで、写真にいいねを付けることができます。パラメータは必要ありません。もちろん、これを適切に実行するには、各ユーザーに有効なアクセス トークンが必要です。Facebook SDK for PHPを使用して、ユーザーごとに Authorization によるアクセス トークンを取得できます。すべての標準オブジェクト (投稿、写真、ビデオは適切にテストされています) に対して機能し、写真、投稿、またはビデオの有効な ID を渡すだけで済みます。

コードは単純で、偽の Facebook の「いいね!」と「いいね!」ボタンを表示しました。

function like_std_object($object_id){
    try{
        $like=$facebook->api('/$object_id/likes','post'); //post a like using api
    }catch(FacebookApiException $e){
        return false;
    }
}
function unlike_std_object($object_id){
    try{
        $like=$facebook->api('/$object_id/likes','delete'); //post a un-like using api
    }catch(FacebookApiException $e){
        return false;
    }
}
于 2013-08-03T17:02:06.723 に答える