Facebook アプリで作成した画像 (ユーザーの Facebook ギャラリーにアップロードしたもの) を別の Web サイト内に表示することはできますか?
2 に答える
彼女が別のアプリでアップロードした現在のユーザーの画像を取得できます。現在のユーザーはアクセストークンを使用してログインする必要があり、
read_stream
user_photos
権限。
FQLクエリとクライアント側の解析を使用して、写真のURLを取得できます。
まず、FQLストリームテーブルでストリーム投稿の添付ファイルをクエリします。ここで、フィールド"app_id"=他のアプリのIDです。
SELECT attachment FROM stream WHERE source_id=me() AND app_id=OTHER_APP_ID
これにより、他のアプリを使用して行われたすべての投稿の添付ファイルが取得されます。
次のようにクエリをさらに絞り込むことができますが、テストするためのデータセットがありません。
SELECT attachment FROM stream WHERE source_id=me() AND app_id=OTHER_APP_ID AND type=247
ここで、247は写真を意味します。それはあなたにクライアント側の仕事をいくらか節約するかもしれません(2つとはハックに見えます、おそらく誰かがより良いステートメントを提案することができます...)。
応答が得られたら、JSONを解析します。各「添付ファイル」には、配列である「メディア」と呼ばれるフィールドがあります。配列アイテムごとに、type="photo"かどうかを確認します。そうである場合、「src」フィールドには、アップロードされた写真の小さなバージョンへのURLリンクが含まれます。
説明のために、JSON応答のサンプルの始まりを次に示します。
"attachment": {
"media": [
{
"type": "photo",
"src": "https://...._s.jpg",
//etc
JSON応答には、他のサイズへのリンクも含まれています。
ストリームテーブルの詳細については、FacebookDevelopersのドキュメントを参照してください。
はい、これは可能ですが、ユーザーは自分の写真にアクセスする権限をあなたに与える必要があります。
これを行うには、拡張アクセス許可を取得します。
$uid = $facebook->getUser();
$url = $facebook->getLoginUrl(array(
'req_perms' => 'user_photos' ));