React Native アプリは Weibo に接続してログインします。共有する必要はありません。github で React-native-weibo を見つけました。残念ながら、ライブラリは 1 年間更新されておらず、最新の Weibo SDK (Android SDK バージョン) を使用していません。 : 4.1、ios SDK バージョン 3.2.1) は、最新の RN (0.55.4) バージョンとの互換性があまり高くないため、Weibo ログインを実装するこのライブラリを自分で書きましたが、共有機能は実装されていません。
$ npm install react-native-weibo-login --save
または
yarn add react-native-weibo-login
$ react-native link react-native-weibo-login
プロジェクトにnode_modules/react-native-weibo-login/ios/WeiboSDK.bundle
を追加しないとクラッシュします。
XCode のプロジェクト ナビゲーターで、 Libraries
を右クリックし、 Add Files to [your project's name]
、 node_modules
] ➜ react-native-weibo-login
に移動して、 RCTWeiBo.xcodeproj
を追加します。
XCode のプロジェクト ナビゲーターでプロジェクトを選択します。
追加
プロジェクトのBuild Phases
➜ Link Binary With Libraries
。
プロジェクト ナビゲーターの [ Targets
➜ info
➜ URL types
で、新しい URL タイプを追加します。 Identifier
値はcom.weibo
、 URL Schemes
値はwb
+ you weibo appKey
です (例: wb2317411734
)。
Info.plist
右クリックしてソース コードとして開き、次の行を挿入します。
< key >LSApplicationQueriesSchemes</ key >
< array >
< string >sinaweibohd</ string >
< string >weibosdk</ string >
< string >sinaweibo</ string >
< string >weibosdk2.5</ string >
</ array >
AppDelegate.m
に以下をコピーします。
- (BOOL)application:(UIApplication *)application openURL:(NSURL *)url
sourceApplication:(NSString *)sourceApplication annotation:(id)annotation
{
return [RCTLinkingManager application:application openURL:url
sourceApplication:sourceApplication annotation:annotation];
}
android/app/src/main/java/[...]/MainActivity.java
を開きます。import com.gratong.WeiBoPackage;
を追加します。getPackages()
メソッドによって返されるリストにnew WeiBoPackage()
を追加します。android/settings.gradle
に追加します。 include ':react-native-weibo-login'
project(':react-native-weibo-login').projectDir = new File(rootProject.projectDir, '../node_modules/react-native-weibo-login/android')
android/app/build.gradle
の依存関係ブロック内に次の行を挿入します。 compile project(':react-native-weibo-login')
android/build.gradle
の allprojects ブロック内に次の行を挿入します。 maven { url "https://dl.bintray.com/thelasterstar/maven/" }
allprojects {
repositories {
mavenLocal()
jcenter()
maven { url "https://dl.bintray.com/thelasterstar/maven/" }
}
}
all
の値を割り当てることは、すべてのスコープのアクセス許可を要求することを意味します。スコープの概念と注意事項の詳細については、 http://open.weibo.com/wiki/Scope
://open.weibo.com/wiki/Scope をご覧ください。https://api.weibo.com/oauth2/default.html
です。これは、Sina Weibo オープン プラットフォームのアプリケーション詳細設定の redirectURI 設定と一致している必要があります。そうでない場合、ログインは失敗します。 import * as WeiBo from 'react-native-weibo-login' ;
let config = {
appKey : "2317411734" ,
scope : 'all' ,
redirectURI : 'https://api.weibo.com/oauth2/default.html' ,
}
WeiBo . login ( config )
. then ( res => {
console . log ( 'login success:' , res )
//登陆成功后打印出的数据如下:
// {
// refreshToken: '2.00Gc2PbDcecpWC127d0bc690FE7TzD',
// type: 'WBAuthorizeResponse',
// expirationDate: 1686362993740.243,
// userID: '3298780934',
// errCode: 0,
// accessToken: '2.00Gc2PbDcecpWCa981899f410o5hEX'
// }
} ) . catch ( err => {
console . log ( 'login fail:' , err )
} )