0

これは、この質問の拡張です: fql を使用して Facebook イベントを取得する

イベントの場所/会場が設定されていないときに問題が発生しています。

私が使用しているクエリは次のとおりです。

{\"events\":
    \"SELECT eid, name,description, start_time, end_time, pic_small,pic_big, eid,venue,location 
      from event WHERE eid in (SELECT eid FROM event_member WHERE uid = me() 
      and start_time > %s)\" ,
 \"locations\":
     \"select page_id,location from page where page_id IN 
     (select venue.id from #events)\" ,
  \"rsvpStatus\":
     \"select eid, rsvp_status from event_member where eid IN 
      (select eid from #events) AND uid = me()\" }

私の観察: このイベントに場所が設定されている場合、会場の属性は id プロパティを持つ json オブジェクトです。以下のjsonを参照してください

 {
          "eid": 34343434322,
          "name": "Another yo you",
          "description": "",
          "start_time": 1347699600,
          "end_time": 1347786000,
          "pic_small": "http:\/\/profile.ak.fbcdn.net\/static-ak\/rsrc.php\/v2\/yy\/r\/XcB-JGXohjk.png",
          "pic_big": "http:\/\/profile.ak.fbcdn.net\/static-ak\/rsrc.php\/v2\/yn\/r\/5uwzdFmIMKQ.png",
          "venue": {
            "id": 34243242
          },
          "location": "Airbiquity"
        }

場所が設定されていない場合は、空の配列です。以下のjsonを参照してください。

{
          "eid": 441320552577649,
          "name": "Meeting",
          "description": "",
          "start_time": 1347491700,
          "end_time": 1347502500,
          "pic_small": "http:\/\/profile.ak.fbcdn.net\/static-ak\/rsrc.php\/v2\/yy\/r\/XcB-JGXohjk.png",
          "pic_big": "http:\/\/profile.ak.fbcdn.net\/static-ak\/rsrc.php\/v2\/yn\/r\/5uwzdFmIMKQ.png",
          "venue": [

          ],
          "location": null
        }

会場属性の型が変わるのがおかしい。私は GSON でこの応答を Java オブジェクトに変換していますが、予想外の会場の構造が原因でスローされています。誰かがこの問題で私を助けることができますか?

4

1 に答える 1

1

Facebookの会場の取り扱いは、この5月に変更されました. イベントが作成された時期と方法に応じて、API から返される状況がいくつかあります。

  1. 既知の会場の ID が返されます。
  2. 会場フィールドは空白で、任意の場所の文字列が返されます。
  3. Venue には、イベント会場に関する情報の配列が含まれていますが、ID は含まれていません。

残念ながら、スクリプトはこれらすべてのケースに対処し、Facebook のエンジニアが考え出す可能性のある将来のケースに備えておく必要があります。

于 2012-09-14T01:23:53.407 に答える