クロールのバグな感じがするが・・・、
あれ?っと思ったときの回避手段のひとつとして。
'POST /me/links'でリンクをシェアすると、 たまに ”サムネイルが表示されない”とか起きることがある(あった)。
POST /me/links HTTP/1.1
Host: graph.facebook.com
message=This+is+a+test+message
link=http://example.com/
そんなときは(そんなときのために?)POST /me/feedを使うのがよい。
要は、'POST /me/feed'でプレビューのパラメータを全部渡してしまおう、と。
POST /me/feed HTTP/1.1
Host: graph.facebook.com
message=This+is+a+test+message
link=http://example.com/
picture=http://example.com/pic.jpg
name=title
description=This+is+a+description
以下、その結論に至った考察のタネ。備忘録として。
- 投稿のプレビューは、以下のパラメータで構成されている
- picture: プレビューに表示する画像のリンク
- name: プレビューのタイトル
- caption: プレビュータイトル下のキャプション
- description: プレビューの説明
- リンクをシェアすると、Open Graphによってリンク先のメタ情報(=パラメータ)を取得する
- パラメータは、優先順位がある
- APIで渡した値が最優先
- こちらが参考になった
- サイト側に問題があって、Open Graphが失敗するケース
- サイト側には問題がなく、 たまに プレビュー表示がおかしくなるケース
- (問題ない=デバッガーツールでも警告は無い)
- 'POST /me/links'リクエストしてから、しばらく経ってもOpen Graphリクエストがやってこない
- プレビュー表示がおかしい、とは
- picture: なし
- name: リンク(URL)
- caption: ドメイン名
- description: なし
- 一度、Open Graphリクエスト(=クロール)に成功すると問題は起きなくなる
- キャッシュされるから
- キャッシュ更新の仕方は3パターン(デバッガー、7日経過、更新API)