0

解决方案编辑: 原来你不能使用PHP SDK返回正确的应用程序令牌,也可以打在开发者网站的应用程序部分的OpenGraph选项,点击“获取代码”,并从那里抢到应用程序访问令牌..你必须这样做:Facebook的注册成就ACCESS_TOKEN问题

$token_url = 'https://graph.facebook.com/oauth/access_token?client_id=' . $fbConfig['appId'] . '&client_secret=' . $fbConfig['appSecret'] . '&grant_type=client_credentials'; 
$accessToken = explode('=',file_get_contents($token_url)); 
$accessToken = $accessToken[1]; 

原来的问题: 使用PHP SDK,我已经在我的登记不成功的成就尝试。我不断收到以下错误: “必须使用应用程序access_token调用此方法。”

但是,当我使用到opengraph(https://graph.facebook.com/app?access_token=ACCESS_TOKEN)中时,我正确地获取了我的应用信息。

下面是我在我的注册迄今取得的成就试过的方法:

$param = array(
    'access_token' => $accessToken, 
    'achievement' => 'http://domain.com/path/to/my/achievement/page', 
    'display_order' => $achievements['achievementWeight'] 
); 
$achievement = $fb->api('/'.$this->CI->config->item('app_id').'/achievements', 'POST', $param); 

$superCurl = "curl -F 'achievement=" . $achieveUrl . "&access_token=" . $accessToken . "' https://graph.facebook.com/" . $appId . "/achievements"; 
exec($superCurl,$result); 


$url = 'https://graph.facebook.com/' . $this->CI->config->item('app_id') . '/achievements?access_token=' . $accessToken; 
$c = curl_init ($url); 
curl_setopt($c, CURLOPT_HEADER, false); 
curl_setopt($c, CURLOPT_SSL_VERIFYPEER, false); 
curl_setopt($c, CURLOPT_POST, true); 
curl_setopt($c, CURLOPT_POSTFIELDS, $param); 
curl_setopt($c, CURLOPT_RETURNTRANSFER, true); 
if(curl_errno($c)){ 
    $this->CI->firephp->log(curl_error($c)); 
} 
$page = curl_exec ($c); 
curl_close ($c); 

一切总是回来说,它需要一个的access_token。

回答

0

Authenticating as an App文件 - 你必须使用应用程序的访问令牌,它允许你以代表应用程序的 - 用户访问令牌是不够的这种情况(和其他几个人)

+0

我知道。我已经验证了我使用的access_token是应用程序的访问令牌,按照我上面提到的图API链接。它带回应用程序的信息,而不是用户。 – Enzo 2012-04-04 22:39:37

+0

对不起,我可能误解了 - 您应该能够使用通过我共享的链接中的方法检索到的应用程序访问令牌 - 这应该允许您阅读成就类型,创建成就类型并为已授予用户发布新成就你publish_actions权限 注意:如果你的应用程序设置说它是一个本地/桌面应用程序的应用程序的秘密将不会被信任,你不能使用这个 – Igy 2012-04-05 10:50:50

+0

可悲的是,它不起作用,我只是不断的错误..叹了口气。 我以某种方式设法获得了2项成就,我可以向用户提供并授予这些成就,但我无法添加新成就,编辑我以某种方式得到的2项,也不删除它们。这变得相当令人沮丧。 – Enzo 2012-04-05 14:03:27