1

ユーザーがアプリを許可すると、このタイプの成功 URL を受け取ります:
http://localhost/fbapp/app.php#access_token=AAAAALY8OpPABAM67auStdfgdfOdfgdfgdenqEt9QZCGD2a1h3iWFrhmNWqOf8l4a9RQ8tAJCM9y5QbYpsP6sT1g0ZCXDhtZCECZApGb&expires_in=660

$_GET['access_token'] でアクセス トークンを保存しようとしているのですが、うまくいきません。

このURLからアクセストークンを取得する方法を知りたい..

4

2 に答える 2

2

$_GET の使用から、PHP について話していると思います。残念ながら、ハッシュ タグがサーバーに送信されることはありません。それらはクライアント側にのみ存在するため、JavaScript を使用して PHP スクリプトを呼び出す必要があります。

例:

<script type="text/javascript">
var HashSearch = new function () {
   var params;

   this.set = function (key, value) {
      params[key] = value;
      this.push();
   };

   this.remove = function (key, value) {
      delete params[key];
      this.push();
   };


   this.get = function (key, value) {
       return params[key];
   };

   this.keyExists = function (key) {
       return params.hasOwnProperty(key);
   };

   this.push= function () {
       var hashBuilder = [], key, value;

       for(key in params) if (params.hasOwnProperty(key)) {
           key = escape(key), value = escape(params[key]); // escape(undefined) == "undefined"
           hashBuilder.push(key + ( (value !== "undefined") ? '=' + value : "" ));
       }

       window.location.hash = hashBuilder.join("&");
   };

   (this.load = function () {
       params = {}
       var hashStr = window.location.hash, hashArray, keyVal
       hashStr = hashStr.substring(1, hashStr.length);
       hashArray = hashStr.split('&');

       for(var i = 0; i < hashArray.length; i++) {
           keyVal = hashArray[i].split('=');
           params[unescape(keyVal[0])] = (typeof keyVal[1] != "undefined") ? unescape(keyVal[1]) : keyVal[1];
       }
   })();
}

$.ajax({
        type: "POST",
        url: '/store_access.php',
        data: 'access_token='+escape(HashSearch.get('access_token'),
        dataType: "html",
        success: function(response) {
            alert('Access Token Stored');
        }
    });
</script>

ここで HashSearch 関数を見つけました: URL から特定のハッシュ タグの値を取得する

また、スクリプトへの投稿でjqueryを想定しましたが、呼び出しには何でも使用できます。トークンを含む URL を使用して本文に画像を追加することもできます。

于 2012-05-03T22:41:59.957 に答える
1

サーバー側 URL の代わりにクライアント側認証 auth URL を使用しているため、GET 変数としてではなく URL フラグメントの一部として access_token を取得しています。

認証 URL から response_type=token を削除し、サーバー側認証に従います。

于 2012-07-24T01:48:02.250 に答える