0

我有Phonegap 的Facebook 插件在我的 Android 应用程序中完美运行。该插件使用 Facebook 的客户端 Javascript 流。但是,我想从服务器端而不是客户端将照片上传到 FB,因为这样效率更高。

是否可以在服务器端使用从客户端生成的 Facebook 访问令牌?(顺便说一句,我有 Facebook 的 PHP SDK 在独立网页上完美运行。)

我正在"(#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/

在这里,您可以在 javascript 中看到为了读取 api 或制作提要故事或上传而进行的调用。您将使用服务器端代码使用相同的图形 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 回答