質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.35%
Firebase

Firebaseは、Googleが提供するBasSサービスの一つ。リアルタイム通知可能、並びにアクセス制御ができるオブジェクトデータベース機能を備えます。さらに認証機能、アプリケーションのログ解析機能などの利用も可能です。

React Native

React Nativeは、ネイティブモバイルアプリ(iOS/Android)を作成できるJavaScriptフレームワークです。Reactと同じ設計のため、宣言的なコンポーネントでリッチなUIを開発することが可能です。

Twitter

Twitterは、140文字以内の「ツイート」と呼ばれる短文を投稿できるサービスです。Twitter上のほぼ全ての機能に対応するAPIが存在し、その関連サービスが多く公開されています。

Authentication

Authentication(認証)は正当性を認証する為の工程です。ログイン処理等で使われます。

Q&A

1回答

2783閲覧

ReactNative+Twitterログインについて

_taizo

総合スコア1

Firebase

Firebaseは、Googleが提供するBasSサービスの一つ。リアルタイム通知可能、並びにアクセス制御ができるオブジェクトデータベース機能を備えます。さらに認証機能、アプリケーションのログ解析機能などの利用も可能です。

React Native

React Nativeは、ネイティブモバイルアプリ(iOS/Android)を作成できるJavaScriptフレームワークです。Reactと同じ設計のため、宣言的なコンポーネントでリッチなUIを開発することが可能です。

Twitter

Twitterは、140文字以内の「ツイート」と呼ばれる短文を投稿できるサービスです。Twitter上のほぼ全ての機能に対応するAPIが存在し、その関連サービスが多く公開されています。

Authentication

Authentication(認証)は正当性を認証する為の工程です。ログイン処理等で使われます。

0グッド

0クリップ

投稿2020/07/30 11:01

編集2020/08/07 11:23

やりたいこと

ReactNativeで作成するiOSアプリにTwitterログインを導入したい。

問題が発生した状況

以下のライブラリに沿って、導入を進めました。
リンク内容
https://github.com/GoldenOwlAsia/react-native-twitter-signin

そこで、ちゃんと機能するかログを出して確認したところ、以下のようになりました。
RNTwitterSignIn が定義されていませんでした。
イメージ説明

実装したコード

javascript

1const {RNTwitterSignIn} = NativeModules; 2const TwitterKeys = { 3 TWITTER_CONSUMER_KEY: 'TWITTER_CONSUMER_KEY', 4 TWITTER_CONSUMER_SECRET: 'TWITTER_CONSUMER_SECRET', 5}; 6 7_socialSignIn = async providerId => { 8 try { 9 const credential = await getCredential(providerId); 10 await auth() 11 .signInWithCredential(credential) 12 .then(res => { 13 let userData = { 14 uid: res.user.uid, 15 displayName: res.user.displayName, 16 email: res.user.providerData[0].email, 17 photoURL: res.user.photoURL, 18 // userID: res.additionalUserInfo.username, 19 created_at: Date.now(), 20 updated_at: Date.now(), 21 }; 22 if (res.additionalUserInfo.isNewUser) { 23 return firestore() 24 .collection('users') 25 .doc(res.user.uid) 26 .set(userData); 27 } 28 29 this.props.globalState.setUserData(userData); 30 }) 31 .then(() => { 32 console.log('success'); 33 }) 34 .catch(err => { 35 console.log(err); 36 }); 37 38 this.props.navigation.navigate('App'); 39 } catch (e) { 40 if (e.code === 'auth/account-exists-with-different-credential') { 41 Alert.alert( 42 'ログインエラー', 43 '他のログイン方法で\nアカウント登録されています', 44 [{text: 'OK', onPress: () => console.log('OK Pressed')}], 45 ); 46 } 47 console.log(e.message); 48 } 49 }; 50}

info.plist(consumerkey等はしっかり入力してあります。)

xcode

1<key>CFBundleURLTypes</key> 2<array> 3 <dict> 4 <key>CFBundleURLSchemes</key> 5 <array> 6 <string>twitterkit-<consumerKey></string> 7 </array> 8 </dict> 9</array> 10<key>LSApplicationQueriesSchemes</key> 11<array> 12 <string>twitter</string> 13 <string>twitterauth</string> 14</array>

package.json

javascript

1 "react-native-twitter-signin": "^1.1.1"

podfile

javascript

1 pod 'TwitterKit', '~> 3.3.0'

以上の情報から、何かおかしい点や気になる点があったら教えていただきたいです。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

JavaScriptはファイル全体をいただくことは可能でしょうか?

import { NativeModules } from 'react-native' const { RNTwitterSignIn } = NativeModules

見えている範囲だと上記が足りないかと思いました。

投稿2020/08/07 03:26

kmtr

総合スコア213

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

_taizo

2020/08/07 11:25

コメントありがとうございます。 上記のコードは記述済みで、その上で問題が発生しました。 実際のコードを修正しました。ご確認お願いします。
kmtr

2020/08/08 04:21

ありがとうございます。 自分は自社アプリの方で利用しているのですが、react-native-twitter-signinは最近更新されていないので、 GoldenOwlAsia/react-native-twitter-signin#c93bd1を直接npm installして使っていました。こちらも試してみてください。
kmtr

2020/08/08 04:22

また、pod installを実行した際には、react-native-twitter-signinは自動で含まれていますでしょうか?
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだベストアンサーが選ばれていません

会員登録して回答してみよう

アカウントをお持ちの方は

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.35%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問