0

みなさん、良い一日を!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を使用しようとすると、エラーが発生します。[error] => stdClass Object([message] =>(#200)paramidsのすべてのユーザーが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

The error message you receive ("All users in param ids must have accepted TOS") is because you are trying to send an app generated request to a user who is not connected to your app.

See the developer docs here https://developers.facebook.com/docs/requests/#app_to_user.

Requests sent with the request dialog and app generated requests are different and you can't use app generated requests to invite users to your app.

于 2012-04-18T11:27:34.547 に答える