我在Twitter上使用此官方Guide登录
我的步骤:
回调网址在“应用程序管理”中将字段留空
安装广告单pod 'Fabric'
,pod 'TwitterKit'
<key>CFBundleURLTypes</key> <array> <dict> <key>CFBundleURLSchemes</key> <array> <string>twitterkit-xxxxxxxx</string> <string>fbxxxxxxxx</string> </array> </dict> </array> <key>FacebookAppID</key> <string>xxxxx</string> <key>FacebookDisplayName</key> <string>Name</string> <key>LSApplicationQueriesSchemes</key> <array> <string>twitter</string> <string>twitterauth</string> <string>fbapi</string> <string>fb-messenger-api</string> <string>fbauth2</string> <string>fbshareextension</string> </array> <key>Fabric</key> <dict> <key>APIKey</key> <string>xxxxxxxxxx</string> <key>Kits</key> <array> <dict> <key>KitInfo</key> <dict/> <key>KitName</key> <string>Crashlytics</string> </dict> </array> </dict>
添加class AppDelegate
import TwitterKit
....
func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplicationLaunchOptionsKey: Any]?) -> Bool {
....
Twitter.sharedInstance().start(withConsumerKey:"xxxxxx", consumerSecret:"xxxxx")
}
func application(_ app: UIApplication, open url: URL, options: [UIApplicationOpenURLOptionsKey : Any] = [:]) -> Bool {
return Twitter.sharedInstance().application(app, open: url, options: options)
}
添加Header.h
#import <TwitterKit/TwitterKit.h>
当我点击按钮登录时,我收到一个错误(测试是在模拟器iOS 9.3上进行的):
-canOpenURL: failed for URL: "twitterauth://authorize?consumer_key=xxxSAMExxx&consumer_secret=yyyyyyy&oauth_callback=twitterkit-xxxSAMExxx" - error: "(null)"
[TwitterKit] did encounter error with message "Error obtaining user auth token.": Error Domain=TWTRLogInErrorDomain Code=-1 "<?xml version="1.0" encoding="UTF-8"?>
<hash>
<error>Desktop applications only support the oauth_callback value 'oob'</error>
<request>/oauth/request_token</request>
</hash>
" UserInfo={NSLocalizedDescription=<?xml version="1.0" encoding="UTF-8"?>
<hash>
<error>Desktop applications only support the oauth_callback value 'oob'</error>
<request>/oauth/request_token</request>
</hash>
}
答案 0 :(得分:1)
您需要将CFBundleURLSchemes条目分开,如下所示:
<key>CFBundleURLTypes</key>
<array>
<dict>
<key>CFBundleURLSchemes</key>
<array>
<string>fbXXX</string>
</array>
</dict>
<dict>
<key>CFBundleURLSchemes</key>
<array>
<string>twitterkit-XXX</string>
</array>
</dict>
</array>
您可能还希望按照official Twitter documentation
中的说明从Fabric进行迁移