0

今天是个好日子!我对应用程序有疑问。当我使用请求对话框时,我得到了带有请求 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 时,出现错误:[error] => stdClass Object ([message] => (#200) 所有参数 ID 中的用户都必须接受 TOS [type] => OAuthException [code] => 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;

我找不到错误...帮助!谢谢。

4

1 回答 1

1

您收到的错误消息(“param ids 中的所有用户必须已接受 TOS”)是因为您尝试将应用生成的请求发送给未连接到您的应用的用户。

在此处查看开发人员文档https://developers.facebook.com/docs/requests/#app_to_user

使用请求对话框发送的请求和应用生成的请求不同,您不能使用应用生成的请求邀请用户加入您的应用。

于 2012-04-18T11:27:34.547 回答