TwitterKit 3.0.3授权失败

时间:2017-07-07 11:50:16

标签: twitter swift3 twitterkit

我在Twitter上使用此官方Guide登录

我的步骤:

  1. 回调网址在“应用程序管理”中将字段留空

  2. 安装广告单pod 'Fabric'pod 'TwitterKit'

  3. 添加 Info.plist
  4. <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>
    
    1. 添加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)
      }
      
    2. 添加框架: enter image description here

    3. 添加Header.h #import <TwitterKit/TwitterKit.h>

    4. 从官方Guide
    5. 添加 TwitterLogInButton

      当我点击按钮登录时,我收到一个错误(测试是在模拟器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>
      }
      

1 个答案:

答案 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进行迁移