2017-06-12 14 views
2

次のコードと他にもさまざまなバリエーションがありますが、私はいつも不正なエラーを受け取ります。私はTwitterKit 3.0をCocoaPodsで使用しています。私は私のTwitterアプリが設定され、私のplistセットアップを持っており、このようなコード:iOS TWTRComposerリクエストが失敗しました:権限がありません(401)

// In didFinishLaunchingWithOptions 
Twitter.sharedInstance().start(withConsumerKey:"XX", consumerSecret:"YYY") 

func application(_ app: UIApplication, open url: URL, options: [UIApplicationOpenURLOptionsKey : Any] = [:]) -> Bool 
{ 
    return Twitter.sharedInstance().application(app, open: url, options: options) 
} 

// In response to a click 
Twitter.sharedInstance().logIn { session, error in 
    if session != nil { // Log in succeeded 
     let composer = TWTRComposer() 

     composer.setText(tweetText) 

     composer.show(from: self.navigationController!) { result in 
      if (result == .done) { 
       print("Successfully composed Tweet") 
      } else { 
       print("Cancelled composing") 
      } 
     } 
    } 
} 

は「ツイートを送信出会いエラーをしました:エラー ドメイン= TWTRNetworkingErrorDomainコード= -1011」要求が失敗しました: は、許可されていません( 401) "のUserInfo = {NSLocalizedFailureReason =、 TWTRNetworkingStatusCode = 401、 NSErrorFailingURLKey = https://api.twitter.com/1.1/statuses/update.json、 NSLocalizedDescription =要求が失敗した:不正な(401)"

+1

これを修正しましたか?私はまったく同じ問題を抱えています!だからイライラする。 –

+0

私は同じ問題を抱えています。あなたはそれを修正しましたか? –

答えて

0

理由はありませんTWTRComposerを使用してログインする。 SDKは、Twitterアプリケーションに現在のセッションがある場合はそれを使用します。そうしないと、スマートな方法で後退します。私はなぜあなたのログインが失敗したのかは言えませんが、問題を回避するために単にそれを削除することを提案します。

  • キット

    func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplicationLaunchOptionsKey: Any]?) -> Bool { 
        Twitter.sharedInstance().start(withConsumerKey:"xxx", consumerSecret:"xxx") 
    
        return true 
    } 
    

    • 初期のTwitter:

      let composer = TWTRComposer() 
      
      composer.setText(tweetText) 
      
      composer.show(from: self.navigationController!) { (result in 
          if (result == .done) { 
           print("Successfully composed Tweet") 
          } else { 
           print("Cancelled composing") 
          } 
      } 
      

      は、あなたはすでにすべてを設定することを言ったが、私はあなたが見逃している必要があり、あなたのステップをインストールチェックリストを提供します情報を設定します.Pリスト

      // Info.plist 
      <key>CFBundleURLTypes</key> 
      <array> 
          <dict> 
          <key>CFBundleURLSchemes</key> 
          <array> 
           <string>twitterkit-<consumerKey></string> 
          </array> 
          </dict> 
      </array> 
      <key>LSApplicationQueriesSchemes</key> 
      <array> 
          <string>twitter</string> 
          <string>twitterauth</string> 
      </array> 
      

    まだ問題が解決しない場合は、アプリのステータスをhttps://apps.twitter.com/に確認してください。あなたのアプリケーションキーを制限するか、あるいは無効にする方法はいくつかあります。この場合、アプリ名の下に赤いラベルが表示されます。

  • 0

    私も同じ問題に直面しています。 Twitter、FB、Googleのログインを使用していました。 彼のplistのシーケンスの問題は、私はそれが私の元

    を働いた最初のさえずりスキームを追加

    URLSchemes -

    <key>CFBundleURLTypes</key> 
         <array> 
          <dict> 
           <key>CFBundleURLSchemes</key> 
           <array> 
            <string>twitterkit-xxxx</string> 
           </array> 
          </dict> 
          <dict> 
           <key>CFBundleURLSchemes</key> 
           <array> 
            <string>fbxxxxx</string> 
           </array> 
          </dict> 
          <dict> 
           <key>CFBundleTypeRole</key> 
           <string>Editor</string> 
           <key>CFBundleURLSchemes</key> 
           <array> 
            <string>com.googleusercontent.apps.xxxx-xxxx</string> 
           </array> 
          </dict> 
         </array> 
    
    2

    それが動作しない場合でも、Twitterのセットアップ手順に従った後、再生してみてくださいコンシューマーキーこれは私の問題を解決しました。

    0

    Basically

    コールバックURLがあなたの アプリでTwitterのキットによって要求されることはありませんが、それはSDKで動作するアプリのための有効なURLに設定する必要があります。それはあなたが流れの下にしたい場合はそれを行うに失敗すると、全体の流れの下に壊れます

    動作しますある-

    あなたがTwitter appを作成しようとすると、それが必須で言っていないにも関わらず

    そして何も自動的に起こりません:

    Twitterのは、それが自動的に最初のユーザーのためにSFSafariViewControllerを使用して、Webビュー(、とのUIWebView FO経由でのOAuthを使用するようにフォールバックデバイスにインストールされていない場合。R以降の追加ユーザー)

    あなたはcallback_urlを持っていない場合は動作しますか:

    ユーザーがTwitterアプリがインストールされている場合にのみ、我々はなじるを構成するか、ログインにすることができます - 残りちょうど動作しません。

    Twitterアプリがインストールさではありません。

    • あなたが.cancelledを取得することがありますcomposer.show(from: self) { (result) inを使用している場合。
    • あなたはRequest failed: unauthorized (401)

    一般的な注意事項を取得することがありますTWTRTwitter.sharedInstance().logIn(completion: { (session, error) inを使用して: APIキー/秘密が無効な場合、すべてのアクションは、アプリのクラッシュにTwitterKitリードによって行わ

    • シングルトンstart("key", "secret")メソッドを使用し、plistの値がであることを確認します。にと同じキーがある場合、アプリがクラッシュします。

    関連する問題