2

オープン グラフ オブジェクト API を使用してオブジェクトを作成し、これらを公開されたストーリーに添付しています。オブジェクトとストーリーの両方が作成され、FB はすべてがうまくいったかのように ID を返します。

ただし、レビューのためにオブジェクト/ストーリーを送信すると、HTTP POST リクエストを 1 つしか作成していないにもかかわらず、(異なるオブジェクト タイプの) 2 つのオブジェクトが作成されることがわかりました。

バックグラウンド

  • 私たちのアプリは名前空間「mynamespace」を使用しています
  • 「myobject」という名前のカスタム オープン グラフ オブジェクトを作成しました。
  • 「myaction」という名前のカスタム グラフを開くアクションを作成しました。

リクエストの詳細:

1) まず、オブジェクトを作成します。

POST /me/objects/mynamespace:myobject HTTP/1.1\r\nConnection: close\r\nHost: graph.facebook.com\r\nContent-Length: LENGTH\r\nContent-Type: application/x-www-form-urlencoded\r\n\r\n

URI デコードされた http 本文:

access_token=TOKEN&object={"url":"http://url.com","title":"My title","image":"https://imageurl.com","description":"My description"}

応答:

"{\"id\":\"123456789\"}"

2) 次に、ストーリーを作成します (このオブジェクトを参照して):

POST /me/mynamespace:myaction HTTP/1.1\r\nConnection: close\r\nHost: graph.facebook.com\r\nContent-Length: LENGHT\r\nContent-Type: application/x-www-form-urlencoded\r\n\r\n

URI デコードされた http 本文:

access_token=TOKEN&myobject=123456789&fb:explicitly_shared=true&message=User generated message

応答:

"{\"id\":\"12121212121\"}"

期待される結果

  • タイプ mynamespace:myobject のオブジェクトを 1 つ作成する必要があります
  • タイプ mynamespace:myaction の 1 つのストーリーを作成する必要があります

実結果

  • タイプ mynamespace:myobject の 1 つのオブジェクトが作成されます
  • タイプ mynamespace:myaction の 1 つのストーリーが作成されます
  • Object 型のオブジェクトが 1 つ作成されます (レビュアーによる)。
  • 投稿タイプのアクションが 1 つ作成されます (レビュアーによる)

ユーザー フィードとオブジェクト ブラウザーに 1 つのストーリーしか表示されませんでしたが、レビュアーは次のように述べて います。1 回のアプリ内アクションで複数のストーリーが公開されても、ユーザーは驚くべきではありません。私が取ったアクションは、「post」と「myaction」のストーリーを生み出しました。

([グラフを開く] -> [タイプ]) を調べたところ、このリクエストを行うたびに、タイプ「オブジェクト」のオブジェクトとタイプ「ポスト」のアクションが自動的に作成/定義されることがわかりました! これはレビュアーが不平を言っているに違いありませんが、何が間違っているのかを突き止めることができませんでした!

これを解決する方法についての提案は大歓迎です。

Open Graph API エクスプローラーを使用した場合とまったく同じ問題

Facebook Graph API エクスプローラーを使用してオブジェクトを作成すると、まったく同じことが起こります。そうすると、'Object' オブジェクトと 'Post' アクションが [Open Graph] -> [Types] の下に突然表示されます。現在、この問題には次の理由があります。

  • オブジェクト/アクション/ストーリーが何らかの方法で正しく設定されていない
  • レビュアーは、実際にはそうではなかったのに、それが問題だと思った
  • FBのバグです

Graph API エクスプローラーで作成されたオブジェクト

Graph API エクスプローラーを使用してオブジェクトを作成すると、次のオブジェクトが生成されます。

{
  "id": "4324324234234234", 
  "url": "http://url.com", 
  "type": "mynamespace:myaction", 
  "title": "My title", 
  "image": [
    {
      "url": "https://imageurl.com"
    }
  ], 
  "description": "My description", 
  "updated_time": "2013-07-09T14:14:38+0000", 
  "created_time": "2013-07-09T14:14:38+0000", 
  "application": {
    "id": "432423423423", 
    "name": "appname", 
    "url": "https://www.facebook.com/apps/appurl"
  }, 
  "is_scraped": false, 
  "post_action_id": "23423423423423423"
}

「post_action_id」は奇妙に思えます。そのオブジェクトをリクエストすると、次のようになります。

{
  "id": "423423423423", 
  "from": {
    "name": "My name", 
    "id": "234234"
  }, 
  "start_time": "2013-07-09T14:14:38+0000", 
  "end_time": "2013-07-09T14:14:38+0000", 
  "publish_time": "2013-07-09T14:14:38+0000", 
  "application": {
    "name": "appname", 
    "namespace": "mynamespace", 
    "id": "432423423423"
  }, 
  "data": {
    "object": {
      "id": "4324324234234234", 
      "url": "http://url.com", 
      "type": "mynamespace:myaction", 
      "title": "My title"
    }
  }, 
  "type": "og.posts", 
  "likes": {
    "count": 0, 
    "can_like": true, 
    "user_likes": false
  }, 
  "comments": {
    "count": 0, 
    "can_comment": true, 
    "comment_order": "chronological"
  }
}

オブジェクトに関連する og.posts オブジェクトが既に存在するという事実は、レビューがここでの問題であると考えているものに違いありません。ただし、この og.posts オブジェクトが開いているグラフ オブジェクトとして自動的に表示される理由はまだわかりません。

4

2 に答える 2