2012-10-30 11 views
6

HybridAuthを使用してFacebookアプリケーションのユーザーを認証し、彼のaccess_tokenをデータベースに保存しました。HybridAuthで「オフライン」アクセス

ユーザーがオンラインになっていない場合、HybridAuthを使用して新しいFacebookの友だちをもらいたい。

友人や通知などを送るために彼のaccess_tokenからそのユーザーを再作成することはできますか?

ありがとうございます!

答えて

7

私はついにハックを見つけました。次の男のためにここに残しておきます。あなたのユーザーとアプリケーションに有効なトークンがあることを確認したら、HybridAuthはエラーをリダイレクトまたは返そうとしないでください。

(私はCodeigniterを使用していますが、純粋なHybridAuthに変換するのは簡単です。

$token = "GET A TOKEN IN Facebook's API EXPLORER"; 
    $this->load->library('HybridAuthLib'); 
    $this->hybridauthlib->storage()->set("hauth_session.facebook.is_logged_in", 1); 
    $this->hybridauthlib->storage()->set("hauth_session.facebook.token.access_token", $token);   
    $service = $this->hybridauthlib->authenticate('Facebook'); 

    if ($service->isUserConnected()){ 

     $user_profile = $service->getUserProfile(); 
     $contacts = $service->getUserContacts(); 
     $access_token = $service->getAccessToken(); 

     var_dump($user_profile); 
     var_dump($contacts); 
     var_dump($access_token); 

    }else{ 
     echo "something went wrong"; 
    } 
+0

ではないあなたは、現在は、(ユーザーのOAuthのトーク​​ンにログインオーバーライドすなわち、 1つはプロファイルページを表示していますか?)あるいは、HybridAutの内部でアクセストークンを設定するだけです操作するには? IIRCの 'authenticate()'メソッドは、完了したらユーザーのセッションデータを設定します。これはあなたのWebアプリケーションに大きなセキュリティ上の欠陥を引き起こすものではありませんか?清潔さが助けになるかもしれません。私は同様の問題に直面している。ありがとう – Abdulaziz

+0

私はデータベースに格納されたアクションを非同期に公開するために使用しているサーバー側のプロセス(cronによって処理される)でこれを使用しています。ログインしているユーザーはありません。ブラウザを介してアクセスする場合、その動作はあなたが言っているものになります – Marc

+0

私はこれを使ってjavascriptインタフェースで取り出されたトークンを処理しました。それは他のソーシャルプロバイダーと同様に、googleプラスのように機能します。あなたの投稿に非常に感謝します。 – Lucia

関連する問題