在服务器端使用Phonegap的Facebook访问令牌

时间:2011-12-13 16:07:05

标签: facebook phonegap-plugins

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

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

我正在试图将"(#200) Permissions Error"拉下来。

如果客户端令牌无法在服务器上使用,还有其他任何建议吗?我不知道从Phonegap应用程序生成服务器端Facebook令牌的方法。

修改 您似乎可以在服务器上使用客户端Facebook令牌。升级到最新的Facebook PHP SDK,并使用$facebook->setAccessToken()函数和从Javascript发送的令牌,这很简单。

2 个答案:

答案 0 :(得分:0)

访问令牌通过客户端或服务器有效。在Facebook端,它是相同的事情:通过HTTP的请求。

如果您无法上传照片,请检查您是否拥有适合您应用的用户权限。

如果你想弄清楚你需要什么图形api调用,一个好的起点是javascript控制台: https://developers.facebook.com/tools/console/

在这里,你可以在javascript中看到正在进行的调用,以便从api中读取,或者制作供稿故事或上传。您将使用服务器端代码使用相同的图形URLS和变量。

答案 1 :(得分:0)

是的,你可以在服务器端使用客户端令牌。实际上,当用户登录到facebook时,fb在cookie中创建一个访问令牌,你可以在客户端和服务器上访问,当用户注销时,cookie就是销毁和访问令牌变得无效。

要将照片上传到脸书我使用以下代码:

// $ 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);