1

注:ユーザーが私のアプリを使用するための私の権限を受け入れたとき。私は彼らに受け入れるように頼みますmanage_notifications

私はとても混乱しています。これをWebで調べたところ、非推奨の情報と間違った情報が混在しているようで、Facebookグラフを使用してFacebookキャンバスアプリを使用してユーザーに通知を送信しようとしています。以下は私がそれを行う方法であり、それは機能しません。

public function getAccessToken() {
    $app_id = $this->settings['app_id'];
    $app_secrete = $this->settings['app_secrete'];
    $url =  "https://graph.facebook.com/oauth/access_token?".
            "client_id={$app_id}".
            "&client_secret={$app_secrete}".
            "&grant_type=client_credentials";
    $c = curl_init($url);
    // necessary so CURL doesn't dump the results on your page
    curl_setopt($c, CURLOPT_RETURNTRANSFER, 1);
    $result = curl_exec($c);
    $result = explode("=", $result);
    curl_close ($c);
    return $result[1];
}

結果は次のようになります access_token=523216317ewwer235|K4A1XugBpajwrweu1K2k12jzckdU。そのため=、コード内の記号を分解します。ユーザーがアプリに入るたびにこの関数を呼び出します。アクセスコードを取得して$token、次のコードのように渡します。

public function alertUser($userid,$token,$message="You have a notification") {
    $inviteMessage = $message;
    $inviteMessage = urlencode($inviteMessage);
    $url = "https://graph.facebook.com/{$userid}/notifications?access_token={$token}&".
    "template={$inviteMessage}&ref=notify";
    $c = curl_init($url);
    // necessary so CURL doesn't dump the results on your page
    curl_setopt($c, CURLOPT_RETURNTRANSFER, 1);
    $result = curl_exec($c);
    curl_close ($c);        
    $r = json_decode($result);
}

そして私は次の応答を受け取ります

object(stdClass) {
    error => object(stdClass) {
        message => 'A user access token is required to request this resource.'
        type => 'OAuthException'
        code => (int) 102
    }
}
4

1 に答える 1

5

通知を機能させるには、POSTリクエストを使用する必要があります。

curl_setopt ($c, CURLOPT_POST, true);

どうやらあなたはリソースを要求しようとして、GET要求を行っています。

于 2012-12-26T18:50:06.673 に答える