请求对话框 - 在PHP中处理
问题描述:
直到现在我正在使用下面的代码,不幸的是它不再工作。请有人能帮助我吗?我真的是初学者,所以我会很感激整个代码或者我应该改变的。如何在PHP中获取ID请求,ID用户和ID用户? 非常感谢您请求对话框 - 在PHP中处理
<script>
FB.init({
appId : '111111111111111',
status : true,
cookie : true,
oauth: true
});
function sendRequestViaMultiFriendSelector() {
FB.ui({method: 'apprequests',
message: 'My Great Request'
}, requestCallback);
}
function requestCallback(response) {
$.post("process_ids.php", {uid: <?php echo $uid; ?>, request_ids: String(response.request_ids) });
return false;
}
</script>
///////////////////////process_ids.php :
<?php
$appid ='11111111111111';
$secret ='22222222222222222';
if(isset($_POST['request_ids']) && !empty($_POST['request_ids'])){
$app_token = file_get_contents('https://graph.facebook.com/oauth/access_token?client_id='.$appid.'&client_secret='.$secret.'&grant_type=client_credentials'); //Get application token
$sent = explode(',', $_POST['request_ids']); //Convert csv to array
$count = count($sent); //count how many objects in array
for ($a = 0; $a < $count; $a++) {
$request = file_get_contents('https://graph.facebook.com/'.$sent[$a].'?'.$app_token);
preg_match("/\"to\":\{\"name\":\"(.*?)\",\"id\":\"(.*?)\"/i", $request, $getInfo);
$sent_to_name = $getInfo[1];
$sent_to_id = $getInfo[2];
preg_match("/\"id\":\"(.*?)\"/i", $request, $getInfo);
$idrequest = $getInfo[1];
$delete_url = "https://graph.facebook.com/" . $idrequest . "?" . $app_token . "&method=delete";
}
} ?>
答
的答案FB被传递给你的JSON编码。而不是写正则表达式的,你可以简单地被储存在$ request变量和json_decode答案()吧...
像这样:
$request = file_get_contents('https://graph.facebook.com/'.$sent[$a].'?'.$app_token);
$answer = json_decode($request);
// that's for debugging only
echo '<pre>';
print_r($answer);
echo '<pre>';
这将输出你已解码的请求..那么。你可以通过$答案 - > some_property
访问conents如果你会使用PHP-SDK从GitHub它会更容易(例如删除apprequests):
$requests=$this->facebook->api('/me/apprequests/'); //Requests Graph API call.
foreach($requests['data'] as $request) {
$this->facebook->api($request['id'], 'delete'); // delete the used request
}