技術メモ

Scala,React Nativaなどの技術メモ

react native social login 続き

react-native-social-login導入

github.com

exsampleを諦めて、とりあえずサンプル実装したら動いた。なんだったんだ。。 node_modulesの削除と、npm installやり直し、xcodeの再起動は効いてそうだった。

iOSプロジェクト側の設定

developers.facebook.com

facebook developersにログインしてないと見れないけど、この辺りを参考にinfo.plistをひたすらいじる感じ。iOS9からは設定が異なるので注意。

facebook developers側の設定

f:id:papuaaaaaaa:20160109213834p:plain

ボタンを押せども押せども上記のような画像が出る。iOS9ではnativeアプリではなくsafariに飛ばされるが、後で触れる。最初はiOSプロジェクト側の設定がミスってるのかと思ってたけど、原因はfacebook developersでの設定不備だった。

設定>Basicの画面でwebプラットフォームしか登録していなかったことが原因。

f:id:papuaaaaaaa:20160109214055p:plain

Add PlatformのボタンからiOSを追加すればBundle Identifierなどを登録できるようになる。

iOS9めんどくさい

FBLoginManager.LoginBehaviors.Nativeを指定しても、nativeアプリではなくsafariが開く。調べるとちゃんとissueが立ってる。

github.com

この辺にiOS9とそれ以前の違いについても詳しく書いてある。アプリ間遷移の仕様が変わったようだ。

developers.facebook.com

サポートサイトでも議論になっている。

developers.facebook.com

stackoverflow.com

なんかFacebookの中の人が「safariで多くの人がfacebook使ってるから、safari経由でoauthしたほうが便利」とか言ってるっように読める。 nativeアプリはの僕としてはうーん。。

自分で書く?

react-native-facebook-login見てみると、ネイディブ機能を操作するコードをObjective-Cで書いていて、それをreact-nativeでラップしてる。Objective-Cで書けばnativeアプリ呼べると思うけど。。

今ここで頑張るのはやめておこう。safari view controllerひとまず使っておいて、内部実装から進める。