2012-02-29 6 views
1

facebookから(作成中の)facebookクラスでアクセストークンを取得しようとしています。しかし、それは私に "あなたは互換性のないWebブラウザを使用している"と言います。どのように私はこのエラーを渡すことができますか?私はhttp_user_agentを設定しようとしましたが、動作しません。Facebookのアクセストークン「互換性のないWebブラウザを使用しています。」

ありがとうございました!

の間で、私はfacebook sdkが欲しくない、私は何をしているのか理解したい。それは可能ですか?

 
$_COOKIE['evo-fbAuth'] = false; 
$_SERVER['HTTP_USER_AGENT'] = "Mozilla/5.0 (Windows NT 5.1; rv:10.0.2) Gecko/20100101 Firefox/10.0.2"; 

class facebook{ 

    private $_appID; 
    private $_appSECRET; 
    private $_code = null; 
    private $_accesstoken = null; 
    private $_urlAuth = 'https://www.facebook.com/dialog/oauth'; 

    function __construct($appID,$appSECRET){ 
     $this->_appID = $appID; 
     $this->_appSECRET = $appSECRET; 

    } 

    public function fbauth($param){ 
     if(!isset($_GET['code'])){ 
      if(isset($param['redirect_uri']) && isset($param['scope'])){ 
       $urlAuth = $this->_urlAuth; 
       $urlAuth .= '?client_id='.$this->_appID; 

       $param['redirect_uri'] = $param['redirect_uri']; 

       foreach($param as $key => $value){ 
        $urlAuth .= '&'.$key.'='.$value; 
       } 

       if(!$this->authCookie()) header('Location: '.$urlAuth); 
      }else{ 
       return false; 
      } 
     }else{ 
      $this->_code = $_GET['code']; 
      $this->getAccessTok($param); 
     } 
    } 

    private function getAccessTok($param){ 
     if($this->_code !== null){ 
      $urlTok = $this->_urlAuth.'/access_token'; 
      $urlTok .= '?client_id='.$this->_appID; 
      $urlTok .= '&redirect_uri='.$param['redirect_uri']; 
      $urlTok .= '&client_secret='.$this->_appSECRET; 
      $urlTok .= '&code='.$this->_code; 

      print_r(file_get_contents($urlTok)); 
     } 
    } 

    private function authCookie(){ 
     if($_COOKIE['evo-fbAuth'] == true){ 
      return true; 
     }else{ 
      setcookie('evo-fbAuth',true,600); 
      return false; 
     } 
    } 

} 

$fb = new facebook('**************','****************************'); 

$param = array(
      'redirect_uri'=>'http://localhost/facebook-auth/MOI_facebook.class.php', 
      'scope'=>'read_stream,publish_stream,publish_actions,manage_pages,email,user_birthday' 
     ); 

$fb->fbauth($param); 

答えて

2

あなたはgetAccessTok機能にaccess_token検索のために間違ったURLを使用しているためです。

// URL you use is $this->_urlAuth.'/access_token' 
https://www.facebook.com/dialog/oauth/access_token 

// But should be 
https://graph.facebook.com/oauth/access_token 
+0

はどうもありがとうございました!今私はアクセストークンの大きな文字列を持っています:Dトークンは常に同じ長さですか?なぜなら、私はaccess_token = ANDとexpireの間の文字列を取得したいからです。 –

+0

@MikeBoutin、['parse_str'](http://php.net/parse_str)のようなものを使って信頼できる方法。 –

+0

大きな助けをありがとう! –

関連する問題