我使用下列獲得APPTOKENFacebook應用程序問題
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, 'https://graph.facebook.com/oauth/access_token?client_id='.$config->getAppId().'&client_secret='.$config->getAppSecret().'&grant_type=client_credentials&scope=offline_access');
curl_setopt($ch, CURLOPT_FRESH_CONNECT, true);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_HEADER, false);
$app_token= curl_exec($ch);
curl_close($ch);
並使用圖形API使用擺脫請求ID信息下面的代碼片段
$ch = curl_init();
curl_setopt($ch, CURLOPT_FRESH_CONNECT, true);
curl_setopt($ch, CURLOPT_URL, 'https://graph.facebook.com/'.$requestId.'?'.$app_token);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_HEADER, false);
$request= curl_exec($ch);
curl_close($ch);
一切工作正常,除了在IE中。 ..
當在IE中使用我的應用程序我在日誌中得到以下錯誤
PHP致命錯誤:未捕獲OAuthException:必須使用活動訪問令牌來查詢有關當前用戶的信息。 ?
在facebook.php扔在管線560,
引用者:HTTP:// < my_url> request_ids = 1934696176864 & REF =通知符& notif_t = app_request
EDIT - 完整代碼
<?php
include './facebook.php';
include './config.php';
include './database.php';
$config = new Config();
$database = new Database();
$facebook = new Facebook(array(
'appId' => $config->getAppId(),
'secret' => $config->getAppSecret(),
'cookie' => false,
));
$sent_to_id='';
if(isset($_GET['request_ids']) && !empty($_GET['request_ids'])){
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, 'https://graph.facebook.com/oauth/access_token?client_id='.$config->getAppId().'&client_secret='.$config->getAppSecret().'&grant_type=client_credentials&scope=offline_access');
curl_setopt($ch, CURLOPT_FRESH_CONNECT, true);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_HEADER, false);
$app_token= curl_exec($ch);
curl_close($ch);
echo 'Acces_Token: '.$app_token .", Session Acces Token: ".$session['access_token'];
//$app_token = file_get_contents('https://graph.facebook.com/oauth/access_token?client_id='.$config->getAppId().'&client_secret='.$config->getAppSecret().'&grant_type=client_credentials'); //Get application token
$sent = explode(',', $_GET['request_ids']); //Convert csv to array
$count = count($sent); //count how many objects in array
for ($a = 0; $a < $count; $a++) {
$ch = curl_init();
curl_setopt($ch, CURLOPT_FRESH_CONNECT, true);
curl_setopt($ch, CURLOPT_URL, 'https://graph.facebook.com/'.$sent[$a].'?'.$app_token);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_HEADER, false);
$request= curl_exec($ch);
curl_close($ch);
//$request = file_get_contents('https://graph.facebook.com/'.$sent[$a].'?'.$app_token);
preg_match("/\"to\":\{\"name\":\"(.*?)\",\"id\":\"(.*?)\"/i", $request, $getInfo);
echo "sent[.".$a."] : ". $sent[$a] .", getInfo[1]: " . $getInfo[1] . ", getInfo[2]: ". $getInfo[2] ;
echo ", AppToken: ".$app_token;
$sent_to_name_temp= $getInfo[1];
$sent_to_id_temp = $getInfo[2];
if(!empty($sent_to_name_temp) && !empty($sent_to_id_temp)){
$sent_to_id .= $getInfo[2] . ',';
}
}
}
$sent_to_id = substr($sent_to_id, 0 , strlen($sent_to_id));
$userIds = explode(',', $sent_to_id);
$database->insert_invites($_GET['id'],$_GET['request_ids'], $userIds);
?>
客戶端代碼
function showInvite(invitedby) {
FB.ui({
method: "apprequests",
message: "Hey this is just for a testing App!",
data: "accepted", //This will be passed back to you when a user accepts the request
title: "Title wil be here!"
},
function(response) {
if (response && response.request_ids) {
ajaxRequest(invitedby, response.request_ids);
$(".message").html("Your invitation has been sent");
} else {
//alert('You must select some friends to send invitation!');
}
});
}
function ajaxRequest(invitedby, requestIds){
$.ajax({
url:"insertInvites.php?id=" + invitedby +"&request_ids="+requestIds,
success:function(){
//alert("Successfully inserted into table");
},
failure:function(){
//alert("Error while insertting into database");
}
});
}
這是完整的代碼?嘗試添加如何設置'$ requestId'變量。你還正在做其他FB電話嗎? – ifaour 2011-04-22 08:58:46