1

私はこの問題に数週間立ち往生しており、以下に簡潔で詳細な説明をしようとします。

状況

Webサイトにアクセスし、 GD-libraryを使用して画像を生成するオプションがあるユーザー。したがって、すべてのユーザーが個人的な画像を生成しました。シンプル...今まで。画像を生成した後、ユーザーはこの画像をFacebookに共有するオプションを取得します。これは、OpenGraphプロトコルを介して行われます。

何が機能しているのか(うん!)

画像の生成は完全に正常に機能しています。Facebookに何かを共有することも機能しています。

問題

次のコードは画像の共有に使用されますが(fbrefresh=CAN_BE_ANYTHING)。FBはまだ古い画像をプルします。これは本当に古い画像である場合もあれば、より最新の画像である場合もあります。しかし、生成されたばかりの画像は決してありません。

そして今?

言ったように、私はすでに試しましたfbrefresh=CAN_BE_ANYTHING。また、デバッグツールでは正しい画像が表示されませんが、これはおそらく、生成された画像がユーザーのCookieから生成された一意のIDを持っているためです。したがって、このIDは、ユーザーが[生成]をクリックし、その後、生成された画像を共有する場合にのみ使用できます。

同じ種類の戦略を使用して機能しているインターネット上の例はありますか?インターネットの半分を検索しましたが、まだ見つかりませんでした。ますますイライラするようになっています。

4

1 に答える 1

1

画像を生成した後、ユーザーはこの画像をFacebookに共有するオプションを取得します。これは、OpenGraphプロトコルを介して行われます。

後者とはどういう意味ですか?その画像をユーザーの壁/アルバムの1つにアップロードするだけですか、それともユーザーが作成した写真を添付し​​たOpen Graphオブジェクトを公開していますか?(ところで、ユーザーが生成した写真は文字通りOGアクションを対象としています。ユーザーがアクションを実行しているときに携帯電話のカメラを使用して撮影した写真でのみ行う必要があります。GDlibで生成された画像がその説明。)

次のコードは画像の共有に使用されますが(fbrefresh = CAN_BE_ANYTHING)。FBはまだ古い画像をプルします。

そして、「引っ張る」とは、正確には何を意味しますか?写真をHTTPPOSTアップロードとしてアップロードしますか、URLでアップロードしますか、OGオブジェクトのog:imageとして指定しましたか、それともアクションの公開中にユーザー生成の写真として渡しますか?


現在、通常、URLによって参照されるリソースが要求元のクライアントによって適切に更新される最も簡単な方法は、クエリ文字列に/ GETパラメータとして別の値を付加することです–現在のUNIXタイムスタンプ:…/image.php?1984372634または…/image.php?foo=bar&forcerefresh=1984372634

この値は毎秒変化するため、これらの各URLは異なるURLになります。また、要求元のクライアントは、そのリソースをキャッシュに保持できないため、そのリソースを要求する以外に選択肢はありません。

于 2013-01-09T15:55:00.040 に答える