大家好! 我有apprequests的问题。 当我使用请求对话框时,我有请求ID的响应。这是代码:
<html xmlns:fb="http://www.facebook.com/2008/fbml">
<body>
<script src="http://connect.facebook.net/en_US/all.js"></script>
<div id="fb-root"></div>
<script>
FB.init({appId:'400884386588720', xfbml:true, cookie:true});
var too = new Array('100003484704320');
function send() {
FB.ui({
method:'apprequests',
message:'http://wasm.ru',
to:too
}, function (response) {
var request = response.request;
var request_id = request + '_' + too[0];
console.log(request_id);
});
}
</script>
</body>
<input type="button" onclick="send(); return true;" value='Request'>
</html>
但用户无法看到此请求!当facebook页面刷新时,我可以看到通知,但加载后它会消失。
当我尝试使用Graph Api时,我有一个错误: [错误] =&gt; stdClass对象 ( [message] =&gt; (#200)param ID中的所有用户必须已接受TOS [type] =&gt; OAuthException [code] =&gt; 200 )
以下是代码:
$token_url = "https://graph.facebook.com/oauth/access_token?" .
"client_id=" . $this->app_id.
"&client_secret=" . $this->secret .
"&grant_type=client_credentials";
$app_token = $this->request($token_url, 'POST');
$app_token = explode('=', $app_token);
$app_token = $app_token[1];
$message="Message with space and with link - http://wasm.ru";
$message = urlencode($message);
$url = 'https://graph.facebook.com/'.$user.'/apprequests?'.'message='.$message.'&access_token='.$app_token.'&method=post';
$res = $this->request($url, 'POST');
请求函数:
$ch = curl_init();
$options = array();
$options[CURLOPT_URL] = $url;
$options[CURLOPT_SSL_VERIFYPEER] = false;
$options[CURLOPT_RETURNTRANSFER] = true;
if($method == 'get') {
$options[CURLOPT_HTTPGET] = true;
} else {
$options[CURLOPT_CUSTOMREQUEST]= 'POST';
}
curl_setopt_array($ch, $options);
$response = curl_exec($ch);
if($action == 'access_token'){
return $response;
}
$response = json_decode($response);
return $response;
我找不到错误......帮忙! 感谢。
答案 0 :(得分:1)
您收到的错误消息(“param ID中的所有用户必须已接受TOS”)是因为您尝试将应用生成的请求发送给未与您的应用连接的用户。
请参阅此处的开发人员文档https://developers.facebook.com/docs/requests/#app_to_user。
随请求对话框和应用生成的请求发送的请求不同,您无法使用应用生成的请求邀请用户访问您的应用。