2017-07-07 225 views
0

我从Twitter的登录使用该官员GuideTwitterKit 3.0.3授权失败

我的步骤:在应用程序管理

  1. 回调URL离开领域的空白

  2. 安装荚pod 'Fabric'pod 'TwitterKit'

  3. Add on 的Info.plist
<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) 
    } 
    
  • 添加框架: enter image description here

  • 添加上Header.h#import <TwitterKit/TwitterKit.h>

  • 添加TwitterLogInButton官方Guide
  • 当我点击按钮来登录,我得到一个错误(测试是在一个模拟器的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

    所示任何人都可以解决此问题? –

    回答

    0

    您需要将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> 
    

    您可能还希望从Fabric中迁移,如official Twitter documentation