0

私はアプリケーションを開発していますが、やりたいことは次のとおりです。

  1. ユーザーのウォールにポトを投稿する
  2. この投稿が受け取るいいねの数をリアルタイムで取得します

私が抱えている最初の問題は、投稿IDに基づいていいね数を取得することです。これは私の写真アップロードコードです:

FB.api('/photos', 'post', {
        message: $user_submited_string,
        url:'http://example/url/image.jpg'        
    }, function(response){
        if (!response || response.error) {
            //error handler
        } else {
           var posted_content_id = response.postid;
           console.log(posted_content_id);
        })

しかし、このposted_content_id変数を Open Graph Debugger に入れると、いいねの数が返されません。

{
  "id": "1685033176_4107146412059", 
  "from": {
    "name": "João Paulo Apolinário Passos", 
    "id": "1685033176"
  }, 
  "picture": "https://fbcdn-photos-a.akamaihd.net/hphotos-ak-prn1/548929_4107355417284_1018318871_s.jpg", 
  "link": "https://www.facebook.com/photo.php?fbid=4107355417284&set=a.4107146292056.1073741826.1685033176&type=1&relevant_count=7", 
  "name": "My Test App Photos", 
  "icon": "https://fbstatic-a.akamaihd.net/rsrc.php/v2/yz/r/StEh3RhPvjk.gif", 
  "actions": [
    {
      "name": "Comment", 
      "link": "https://www.facebook.com/1685033176/posts/4107146412059"
    }, 
    {
      "name": "Like", 
      "link": "https://www.facebook.com/1685033176/posts/4107146412059"
    }
  ], 
  "privacy": {
    "description": "Public", 
    "value": "EVERYONE", 
    "friends": "", 
    "networks": "", 
    "allow": "", 
    "deny": ""
  }, 
  "type": "photo", 
  "status_type": "added_photos", 
  "object_id": "4107355417284", 
  "application": {
    "name": "My Test App", 
    "id": "178883808932511"
  }, 
  "created_time": "2013-04-10T01:20:12+0000", 
  "updated_time": "2013-04-10T01:20:12+0000"
}

私の写真のような数が含まれていません。最初の質問は、ユーザーが挿入した画像のいいね数を取得する方法です。

2 つ目は、いいねの数を取得したら、ランク付けしたいということです。そのために、それらをデータベースに保存し、cron ジョブを設定して新しい投稿をチェックし、新しい投稿でランクを更新することを考えました。その方法を探していたときに、Facebook Developers Documentation の「Realtime Updates」セクションに出くわしました。しかし、私には、リアルタイムでこのいいね数を取得できるかどうか、およびその方法が明確ではありません。それが私の 2 番目の質問です。ネイティブの「リアルタイム更新」を使用して、画像のいいねの数をリアルタイムで取得できますか? それが不可能な場合、独自のカウンターを作成するにはどうすればよいですか? 拡張されたトークンと cronjobs?

2 番目の質問の答えが最初の答えでもある可能性があるため、この 2 つの質問を 1 つにしています。そして、最後に知っておくべきことは、実行可能だとしても、そのようなことをすることはFacebookのポリシーに違反していることですか?

4

1 に答える 1

2

これは、 Photo IdではなくPost Idを照会しているためです。

写真をアップロードすると、ユーザーのフィードにも投稿が自動的に公開されます。写真 ID を読み取るには、プロパティを使用する必要がありresponse.idます。

あなたの例では、写真の4107146412059ID<user-id>_<photo-id>

Graph API ドキュメントの Photo オブジェクトに関するドキュメント

リアルタイム更新:

ユーザー フィードが更新されると、Facebook からリアルタイムのプッシュ通知を受け取ることができます。 ここに画像の説明を入力

ただし、写真だけでなく、ユーザー フィードへのすべての投稿を取得するため、これはやり過ぎです。残念ながら、唯一の方法は更新をポーリングすることだと思います。

リアルタイム更新に関するその他の情報: Facebook のドキュメント

于 2013-05-04T17:06:14.683 に答える