1

ユーザーのFacebook通知から情報を収集するアプリを書いています。グラフエクスプローラーを使用して、私は要求します:

me/notifications?include_read=true

これにより、大量のデータが返されます。各アイテムは、Facebookにログインしたときに表示される通知アイテムです。例(ID /名前がわずかに変更されました):

{
  "id": "notif_630262196_168132987", 
  "from": {
    "name": "John Bloggs", 
    "id": "822724665"
  }, 
  "to": {
    "name": "Dermot Bloggs", 
    "id": "680265196"
  }, 
  "created_time": "2013-01-23T22:58:28+0000", 
  "updated_time": "2013-01-23T22:58:28+0000", 
  "title": "John Bloggs commented on your link: \"Goodbye Great Barrier Reef. Goodbye...\"", 
  "link": "http://www.facebook.com/<removed>/posts/330788937030559?comment_id=1702155", 
  "application": {
    "name": "Links", 
    "id": "2309869772"
  }, 
  "unread": 0, 
  "object": null
}

通知はコメントに関連していますが、「title:」フィールドが長すぎると切り捨てられます。

プログラムでコメントに直接アクセスして、1000文字のコメントであっても、すべてのテキストを取得できるクリーンな方法はありますか?

ありがとう!:-)

4

2 に答える 2

2

linkフィールドを解析してクエリを実行することで、コメントを取得できるはずです。

/330788937030559_1702155

また

/POSTID_COMMENTID

アカウントでこれをテストしたところcomments、コメントの全文とともに、返されたデータにオブジェクトが含まれています。GraphAPIでほとんどの権限を有効にしています。read_stream権限に追加することで、このデータが得られると思います。

于 2013-01-24T01:47:55.207 に答える
1

構文解析を回避できます!私は通知を使って多くの実験を行い、「ソース」オブジェクト(通知の発信元であるFacebookグラフオブジェクトであるソースオブジェクト)と呼ばれるものを取得しています。残念ながら、このメカニズムがどのように機能するかについてのドキュメントは見つかりませんが、アプリに多くの権限が付与されている場合、"object"投稿したJSONのフィールドにnullは実際には「ソースオブジェクト」が入力されます。代わりに、次の"object" : nullようになります。

"object": {
    "id": "587140489_588632201147717", 
    "from": {
      "name": "Dave Rodríguez", 
      "id": "587140489"
    }, 
    "message": ":D ", 
    "picture": "https://fbcdn-vthumb-a.akamaihd.net/hvthumb-ak-prn1/632550_478955408819349_478954732152750_60483_1892_t.jpg", 
    "link": "https://www.facebook.com/photo.php?v=478954732152750", 
    "source": "http://video.ak.fbcdn.net/hvideo-ak-prn1/v/754708_478955348819355_1792301950_n.mp4?oh=c7295ccfc3773f24de931e4c29f512ce&oe=513F1728&__gda__=1363127340_9302c108824176369427a0b17491b800", 
    "name": "¡¡¡EL SECRETO DE LA CHANCLA!!!!", 
    "description": "EL SECRETO DE LAS MADRES, EL MÁS UTILIZADO EN TODAS LAS GENERACIONES, VÉALO USTED MISMO Y ((COMPARTA))!", 
    "properties": [
      {
        "name": "Length", 
        "text": "1:13"
      }
    ], 
    "icon": "https://fbstatic-a.akamaihd.net/rsrc.php/v2/yD/r/aS8ecmYRys0.gif", 
    "actions": [
      {
        "name": "Comment", 
        "link": "https://www.facebook.com/587140489/posts/588632201147717"
      }, 
      {
        "name": "Like", 
        "link": "https://www.facebook.com/587140489/posts/588632201147717"
      }
    ], 
    "privacy": {
      "value": ""
    }, 
    "type": "video", 
    "status_type": "shared_story", 
    "object_id": "478954732152750", 
    "application": {
      "name": "Video", 
      "namespace": "video", 
      "id": "2392950137"
    }, 
    "created_time": "2013-03-10T20:45:20+0000", 
    "updated_time": "2013-03-10T20:45:20+0000", 
    "likes": {
      "data": [
        {
          "name": "Adrian Guerra Cuenta Verificada", 
          "id": "674364748"
        }
      ], 
      "count": 1
    }, 
    "comments": {
      "count": 0
    }
  }

私よりも知識のある人が、このフィールドに入力されていることを確認するために必要な権限を正確に教えてくれることを願っています。私はそれを自分で理解しますが、パーミッションのSUM(nCk(77,k),k,1,77)=151115727451828646838271可能な組み合わせをブルートフォースするのに非常に長い時間がかかるほど多くのパーミッションがあります。

于 2013-03-10T21:56:47.987 に答える