web-dev-qa-db-ja.com

Android)にFBSDKからのアクセストークンがすでにある場合にWebViewでFacebookにログインする方法

私はFacebookSDK経由でログインしているAndroidアプリを開発しています。アプリではFacebookのソーシャルコメントもwebviewに表示されます。しかし、ユーザーがfb sdk、webviewを介してログインしていても問題がありますそれについては知らず、新しいコメントを投稿するには、ユーザーがログインする必要があります。

私の質問は:FacebookのSDKセッションからWebViewにログインを渡す方法はありますか?たとえば、アクセストークン文字列を指定してwebviewで呼び出し、ログインしてコメントを投稿できるようにするjavascript関数を使用しますか?

ありがとう:)

23
bakua

それでもFacebookログインページを使用したいユーザーがいる場合は、Android Javascriptインターフェイスを使用して、access_tokenをAndroid FacebookSDKに渡すことができます。

1
Hugo Gresse

したがって、これまでに理解したことでは、ログに記録されたセッションをWebViewに渡す方法はありません。

この問題に対する私の解決策は次のとおりです。リモートサーバーで、Facebook JavaScript SDKを使用してログインインターフェイスを使用してWebページを作成し、それをWebViewに表示します。このようにして、アプリ内のすべてのWebViewが同じログインCookieを共有し、すべてが希望どおりに機能します。

または、m.facebook.comを直接ロードすることもできますが、この方法では、ログイン後にユーザーのウォールに移動します。上記のソリューションでは、ログイン後に別のコンテンツをユーザーの写真と情報のみとして表示できます(もちろんログアウトボタン付き)。

それが役に立てば幸い :)

1
bakua

Facebook RestAPIサービスはすでに非推奨になっています。
Facebook SDKを使用して、Facebookからログインして詳細にアクセスできます。 Facebookのドキュメントを確認してください。

https://developers.facebook.com/docs/Android/login-with-facebook/v2.2

0
Rasik Fareeth

クエリ文字列を介して、ネイティブSDKからWebビューにaccess_tokenを渡してみることができます。

myWebView.loadUrl('http://mydomain.com/?access_token=' + facebookAccessToken);

また、Webビューでaccess_tokenが設定されているかどうかを確認し、javascript sdkで使用して、同じ問題を抱えている人に役立つことを願っています。

0
norman784