0

Phonegap のFacebook プラグインは、Android アプリ内で完全に機能しています。このプラグインは、Facebook のクライアント側 Javascript フローを使用します。ただし、クライアント側ではなくサーバー側から FB に写真をアップロードしたいと思います。これははるかに (はるかに) 効率的です。

クライアントサイドで生成されたFacebookのアクセストークンをサーバーサイドで利用することはできますか? (ところで、私は Facebook の PHP SDK をスタンドアロンの Web ページで完全に動作させています。)

私は"(#200) Permissions Error"これをやろうとしています。

クライアント側のトークンをサーバーで使用できない場合、他の提案はありますか? Phonegap アプリからサーバー側の Facebook トークンを生成する方法がわかりません。

編集:サーバー上でクライアント側の Facebook トークン を実際に使用できるようです。最新の Facebook PHP SDK にアップグレードし、$facebook->setAccessToken()Javascript から送信されたトークンで関数を使用するだけです。

4

2 に答える 2

0

アクセス トークンは、クライアントまたはサーバー経由で有効です。Facebook 側でも同じです。HTTP 経由のリクエストです。

写真をアップロードできない場合は、アプリケーションに適切なユーザー権限があることを確認してください。

必要なグラフ API 呼び出しを把握しようとしている場合は、JavaScript コンソールから始めるのがよいでしょう: https://developers.facebook.com/tools/console/

ここでは、API から読み取るため、またはフィード ストーリーを作成するため、またはアップロードするために、JavaScript でどのような呼び出しが行われているかを確認できます。サーバー側コードを使用して、同じグラフ URL と変数を使用します。

于 2011-12-13T19:10:37.247 に答える
0

はい、サーバー側でクライアント側のトークンを使用できます。実際には、ユーザーがfacebookにログインすると、fbはCookieでアクセストークンを作成します。これは、クライアントとサーバーの両方でアクセスでき、ユーザーがログアウトすると、Cookieが破棄されてアクセスしますトークンが無効になります。

そして、写真をFacebookにアップロードするには、次のコードを使用しました:

// $friends は、写真にタグ付けされるフレンド ID の配列です

// $x と $y はタグの位置です。

for($i=0;$i<sizeof($friends);$i++)
{
$tags[] =  array(
      'tag_uid'=>$friends[$i],
      'x'      => $x[$i],
      'y'      => $y[$i],
 );
}



$photo_details = array(
'access_token'=>$access_token ,
    'message'=> 'Any message',
'tags' => $tags
);

$file=$photo_name; //Example image file

$photo_details['image'] = '@' . realpath($file);

$upload_photo = $facebook->api('/me/photos', 'post', $photo_details);
于 2011-12-31T08:34:23.477 に答える