2011-12-13 15 views
0

AndroidおよびiOS用のPhoneGapアプリを実装すると、アプリはFacebook ConnectとPhoneGap Facebook Connectプラグイン(https://github.com/davejohnson/phonegap-plugin-facebook-connect)を使用しています。数日前に私はaccess_tokenに問題が発生し始めましたが、Androidのみで、同じシナリオが問題なくiOSで動作します。ステップバイステップは:ユーザーがパスワードを変更したためセッションが無効にされました

  1. 初期フェイスブックです。 (プラグイン機能を使用)
  2. フェイスブックにログインします。 (プラグイン機能を使用して)(アクセス許可を尋ねる: 'email user_birthday publish_stream offline_access')
  3. 私に返されたトークンを使用してapi call/meをグラフ化します。

手順3でエラーが返され、URLを呼び出してデスクトップブラウザに入れると、「ユーザーがパスワードを変更したためセッションが無効になっています」というエラーが表示されます。

サンドボックスアプリ/サンドボックスアプリでは違いはありません。

iOSの手順はまったく同じです。

私はSOFとFacebookについて多くの質問をしましたが、すべてはユーザーが認証フローをやり直すことを指しています、または数日後に問題が解決したということです。これは本当にFacebookのバグであることを確認できますか?または解決策がありますか?それとも、iOSではなくAndroidで動作するのか説明できますか?おそらく、iOSでFacebookのアプリを使わずに、私はOAuth経由でブラウザにアクセスすることを選択する必要がありますか?

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

EDIT:

他の関連質問に見つかり、鉱山と同じ根本的な原因を持っているようです。

How can I remove all potentially cached tokens or session IDs on Android?

Access token immediately invalidated

答えて

1

[OK]を、最終的に私は私の問題の根本的な原因は、AndroidとiOSのFacebook SDKのは、彼らがに設定された値で、異なっoffline_accessを処理しているということであったことが判明セッションオブジェクトの 'expires'パラメータ

iOSでは、「expires」は将来遠い日付(4001-01-01)に設定されますが、Androidでは「expires」は0に設定されます。これで比較が行われました(今日は<)失敗しました(私はミリ秒単位で日付を解析していました)、セッションは常に「無効」でした。

(私の場合、私のトークンはセッションが無効だった場合、私のトークンは後でブラウザで試してみると実際には無効になります)

関連する問題