2009-09-18 3 views
9

私はこれをしばらくは続けてきました。それはよく聞かれる質問ですが、まれによく答えられた質問です。オフラインアクセスキーとログイン

自分のウェブサイトのユーザーが自分のFacebookアカウントと自分のウェブサイトをリンクさせたいと思います。 私のサイトで彼らのストリームe.t.cを見ることができます。

私のサイトにログインするたびに、再びfacebookに接続する必要があります。 私は、ユーザーが自分のデータにoffline_accessを渡すオプションを持っているので、自分のサイトに来るたびにfacebookに再ログインしたり、自分のサイトに再接続する必要はありません。一般的に私のサイトのポイントのようなものとして。

これを行うには、私はオフラインアクセスを取得する必要があることを理解しています。 (https://developers.facebook.com/docs/authentication/)私の検索からは、文書(Facebook offline access step-by-step)に少し明るいようです。

私はすでにオフラインアクセスを求める方法を知っていますが、データの取得方法はわかりません。

私の質問は以下の通りです。

  1. 新しい無限セッションキーをリクエストしたらどうすれば入手できますか?
  2. 私はそれを持ってデータベースに保存します - 通常の制限付きアクセスキーを通過するのではなく、それを使ってFacebookブックユーザーを作成するにはどうすればいいですか?

詳細については、私はあなたが通常のPHPライブラリを使用して私のコードを与えることができれば、私はちょうど私がいるので接続ログインfacebookで作業してきた非常に多くの

答えて

6

右。コードをいくつか検索して突っ込んだ後。私はそれを考え出した。

私は複数のユーザーと1週間のコースでそれをテストしました。それは魅力的です。

offline_access権限を取得したら、セッションキーとユーザーIDを格納します。 (どこにいても私のデータベースに私のものを保存します)。

無限のセッションキーは、「dash」がユーザーIDであることをすべて確認した上で、df4175330aaddb9d50fd8f84-30000799 のようなものになります。

次にあなたがAPIを呼び出して、次の時間がにこのコード行を追加します

ます$ this-> FB-> SET_USER( 'FacebookのユーザーID'、 'オフラインアクセスセッションキー'、0); N.B.ゼロは期限が切れるまでの時間です。 0 =決して。これは完全に働いた私のテストでは

$this->fb = new Facebook($this->_api_key, $this->_secret_key);  
//Query Database to see if user had enabled offline access. 
//If So extract the userid and session key 
$this->fb->set_user($fbuserid, $fbsess, 0); 

を次のように

マイライブラリでの私のコードです。 offline_access権限を与えたら、私のユーザーは自分のサイトにログインし、Facebookに自動的にログインできます。現在、問題なく1週間働いています。

私はそれがすべてだと思います。しかし、私が何かを残したら、私に知らせてください。

+0

Facebook PHP SDKに 'set_user()'メソッドがないようです。これが新しいSDKでどのように機能するか考えてみましょうか? –

+0

こんにちは、これは変更されたようです。以下の例のコールを投稿します:\t \t $ data_api ['access_token'] \t = $ fb_access_token; \t \t $ data_api ['query'] \t \t \t = "写真を選択してください(どこから助けてください?WHERE owner = '$ fb_uid'); \t \t $ data_api ['method'] \t \t = 'fql.query'; \t \t $ result = $ this-> facebook-> api($ data_api); これは新しいphp api – Herr

1

おかげでそれを変換しますエリオットHaughinのFacebook connect libraryけれどもとPHP(codeigniter)を使用しています彼らはF8でそれを発表し、1年前にベータ版に入れました。私はいくつかの大規模なウェブサイト上でのFacebook Connectの統合のバックエンド側を担当しており、特にこの問題についてかなりの時間を費やしました。

ここにはa good post on the topic、そしてここにはa bug filed 3 months agoです。

Facebookはこの種のセッション促進を積極的にサポートしていません - はい、それはin the docsですが、動作しません。明らかに彼らが実際に内部でテストしているものではありません。

経験から、私に教えてください:十分に文書化されていない一般的に使用されている機能であれば、それを維持するためにFacebookに頼ることはできません。

+0

あなたのアドバイスは固定されるまで気にしないでください。 今後の段階で修正されると仮定してバックエンドを構築する必要がありますか? –

+0

修正されないものとします。バグは既に数か月間無視されており、私が報告したバグの多くは、一度も修正されていなければ、修正するのに一年以上かかっています。 –

0

ユーザーがパスワードを変更するたびにキーの有効期限が切れます。これはドキュメントに記載されています。

+1

で動作します。これは私の質問とは関係ありません。 –

関連する問題