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