Twitter Kit is a native SDK to include Twitter content inside mobile apps.

Overview

Twitter will be discontinuing support for Twitter Kit on October 31, 2018. Read the blog post here.

Twitter Kit for iOS

Background

Twitter Kit is a native SDK to include Twitter content in mobile apps. Twitter Kit is designed to make interacting with Twitter seamless and efficient.

Using Twitter Kit from source in production applications is not officially supported. Please utilize the official binaries released via CocoaPods or Carthage.

Twitter Kit Features

  • Display Tweets and timelines
    • Native views to display Tweets in alignment with Twitter's display guidelines.
    • Timeline adapters for displaying collections, lists, and profile timelines from the Twitter API
    • Search result timelines using the Search API, with additional client-side filter capability
  • Compose Tweets
    • Share Tweets with text, URLs, photos and video.
    • Automatically handles API access and login for quick sharing.
  • Monetize with MoPub integration
    • Easy integration of MoPub's display ads tools with Twitter content.
  • Log in with Twitter
    • Authorize users, using the Twitter accounts already on their phone.
    • Support for requesting email address
  • Access the Twitter API
    • API client for all interactions with the Twitter API.

Components of Twitter Kit iOS

  • TwitterCore
    • Network calls are handled
  • TwitterKit
    • Tweet display
  • TwitterShareExtensionUI
    • Tweet composer

Installation

Get started

Install using Cocoapods

To add Twitter Kit to your app, simply add TwitterKit to your Podfile.

target 'MyApp' do
  use_frameworks!
  pod 'TwitterKit'
end

Install using Carthage

To install Twitter Kit for iOS using Carthage, add the following lines to your Cartfile. For more information about how to set up Carthage and your Cartfile, see here.

binary "https://ton.twimg.com/syndication/twitterkit/ios/TwitterKit.json"
binary "https://ton.twimg.com/syndication/twitterkit/ios/TwitterCore.json"

After running carthage update, add TwitterKit.framework and TwitterShareExtensionUI.framework to the Linked Frameworks and Binaries section under General of your App target. In addition to that, make sure that when you are adding the copy-frameworks run script for Carthage that you add the following input paths:

$(SRCROOT)/Carthage/Build/iOS/TwitterCore.framework
$(SRCROOT)/Carthage/Build/iOS/TwitterKit.framework
$(SRCROOT)/Carthage/Build/iOS/TwitterShareExtensionUI.framework

Make sure that the run script phase is after your Link Binaries with Libraries phase to prevent issues with properly archiving your iOS application.

Preview Twitter Kit Features in the Demo App

Twitter Kit includes a demonstration app allowing you to preview features, and verify functionality. Create Twitter API keys as above, and then:

  • To check out a demo app with features already built in, rename DemoApp/Config.xcconfig.sample to DemoApp/Config.xcconfig and populate the consumer key and secret.
  • Run DemoApp.xcworkspace on Xcode to verify build.

Code of conduct

This, and all github.com/twitter projects, are under the Twitter Open Source Code of Conduct. Additionally, see the Typelevel Code of Conduct for specific examples of harassing behavior that are not tolerated.

Contribution

The master branch of this repository contains the latest stable release of Twitter Kit.

Twitter Kit can be used as a dependency for substantial other work, and we welcome fixes and enhancements to the core libraries as well. See CONTRIBUTING.md for more details about how to contribute.

Contact

For usage questions post on Twitter Community. Please report any bugs as issues. Follow @TwitterDev on Twitter for updates.

License

Copyright 2017 Twitter, Inc. Licensed under the Apache License, Version 2.0: http://www.apache.org/licenses/LICENSE-2.0

Comments
  • Errors like: Class TWTRScribeService is implemented in both ...

    Errors like: Class TWTRScribeService is implemented in both ...

    ⚠️⚠️⚠️ note that this framework is discontinued and no issues will be fixed ⚠️⚠️⚠️

    Bug Report

    I'm getting lots of this on app startup.

    objc[2541]: Class TWTRScribeService is implemented in both /private/var/containers/Bundle/Application/B90F531E-C7AD-43E6-9EF8-584D399A11E0/my.app/Frameworks/TwitterKit.framework/TwitterKit (0x105fc9330) and /private/var/containers/Bundle/Application/B90F531E-C7AD-43E6-9EF8-584D399A11E0/my.app/Frameworks/TwitterCore.framework/TwitterCore (0x105d00c88). One of the two will be used. Which one is undefined.
    objc[2541]: Class TWTRUserAuthRequestSigner is implemented in both /private/var/containers/Bundle/Application/B90F531E-C7AD-43E6-9EF8-584D399A11E0/my.app/Frameworks/TwitterKit.framework/TwitterKit (0x105fc93a8) and /private/var/containers/Bundle/Application/B90F531E-C7AD-43E6-9EF8-584D399A11E0/my.app/Frameworks/TwitterCore.framework/TwitterCore (0x105d00d00). One of the two will be used. Which one is undefined.
    objc[2541]: Class TWTRSecItemWrapper is implemented in both /private/var/containers/Bundle/Application/B90F531E-C7AD-43E6-9EF8-584D399A11E0/my.app/Frameworks/TwitterKit.framework/TwitterKit (0x105fc93f8) and /private/var/containers/Bundle/Application/B90F531E-C7AD-43E6-9EF8-584D399A11E0/my.app/Frameworks/TwitterCore.framework/TwitterCore (0x105d00d50). One of the two will be used. Which one is undefined.
    objc[2541]: Class TWTRMultipartFormElement is implemented in both /private/var/containers/Bundle/Application/B90F531E-C7AD-43E6-9EF8-584D399A11E0/my.app/Frameworks/TwitterKit.framework/TwitterKit (0x105fc9420) and /private/var/containers/Bundle/Application/B90F531E-C7AD-43E6-9EF8-584D399A11E0/my.app/Frameworks/TwitterCore.framework/TwitterCore (0x105d00d78). One of the two will be used. Which one is undefined.
    objc[2541]: Class TWTRMultipartFormDocument is implemented in both /private/var/containers/Bundle/Application/B90F531E-C7AD-43E6-9EF8-584D399A11E0/my.app/Frameworks/TwitterKit.framework/TwitterKit (0x105fc9470) and /private/var/containers/Bundle/Application/B90F531E-C7AD-43E6-9EF8-584D399A11E0/my.app/Frameworks/TwitterCore.framework/TwitterCore (0x105d00dc8). One of the two will be used. Which one is undefined.
    objc[2541]: Class TWTRAPINetworkErrorsShim is implemented in both /private/var/containers/Bundle/Application/B90F531E-C7AD-43E6-9EF8-584D399A11E0/my.app/Frameworks/TwitterKit.framework/TwitterKit (0x105fc94c0) and /private/var/containers/Bundle/Application/B90F531E-C7AD-43E6-9EF8-584D399A11E0/my.app/Frameworks/TwitterCore.framework/TwitterCore (0x105d00e18). One of the two will be used. Which one is undefined.
    objc[2541]: Class TWTRAPIResponseValidator is implemented in both /private/var/containers/Bundle/Application/B90F531E-C7AD-43E6-9EF8-584D399A11E0/my.app/Frameworks/TwitterKit.framework/TwitterKit (0x105fc9538) and /private/var/containers/Bundle/Application/B90F531E-C7AD-43E6-9EF8-584D399A11E0/my.app/Frameworks/TwitterCore.framework/TwitterCore (0x105d00e90). One of the two will be used. Which one is undefined.
    objc[2541]: Class TWTRDateFormatters is implemented in both /private/var/containers/Bundle/Application/B90F531E-C7AD-43E6-9EF8-584D399A11E0/my.app/Frameworks/TwitterKit.framework/TwitterKit (0x105fc9588) and /private/var/containers/Bundle/Application/B90F531E-C7AD-43E6-9EF8-584D399A11E0/my.app/Frameworks/TwitterCore.framework/TwitterCore (0x105d00ee0). One of the two will be used. Which one is undefined.
    objc[2541]: Class TWTRGuestAuthRequestSigner is implemented in both /private/var/containers/Bundle/Application/B90F531E-C7AD-43E6-9EF8-584D399A11E0/my.app/Frameworks/TwitterKit.framework/TwitterKit (0x105fc95d8) and /private/var/containers/Bundle/Application/B90F531E-C7AD-43E6-9EF8-584D399A11E0/my.app/Frameworks/TwitterCore.framework/TwitterCore (0x105d00f30). One of the two will be used. Which one is undefined.
    objc[2541]: Class TWTRKeychainWrapper is implemented in both /private/var/containers/Bundle/Application/B90F531E-C7AD-43E6-9EF8-584D399A11E0/my.app/Frameworks/TwitterKit.framework/TwitterKit (0x105fc9600) and /private/var/containers/Bundle/Application/B90F531E-C7AD-43E6-9EF8-584D399A11E0/my.app/Frameworks/TwitterCore.framework/TwitterCore (0x105d00f58). One of the two will be used. Which one is undefined.
    objc[2541]: Class TWTRScribeClientEventNamespace is implemented in both /private/var/containers/Bundle/Application/B90F531E-C7AD-43E6-9EF8-584D399A11E0/my.app/Frameworks/TwitterKit.framework/TwitterKit (0x105fc9650) and /private/var/containers/Bundle/Application/B90F531E-C7AD-43E6-9EF8-584D399A11E0/my.app/Frameworks/TwitterCore.framework/TwitterCore (0x105d00fa8). One of the two will be used. Which one is undefined.
    objc[2541]: Class TWTRUserAPIClient is implemented in both /private/var/containers/Bundle/Application/B90F531E-C7AD-43E6-9EF8-584D399A11E0/my.app/Frameworks/TwitterKit.framework/TwitterKit (0x105fc96a0) and /private/var/containers/Bundle/Application/B90F531E-C7AD-43E6-9EF8-584D399A11E0/my.app/Frameworks/TwitterCore.framework/TwitterCore (0x105d00ff8). One of the two will be used. Which one is undefined.
    objc[2541]: Class TWTRNetworking is implemented in both /private/var/containers/Bundle/Application/B90F531E-C7AD-43E6-9EF8-584D399A11E0/my.app/Frameworks/TwitterKit.framework/TwitterKit (0x105fc96f0) and /private/var/containers/Bundle/Application/B90F531E-C7AD-43E6-9EF8-584D399A11E0/my.app/Frameworks/TwitterCore.framework/TwitterCore (0x105d01048). One of the two will be used. Which one is undefined.
    objc[2541]: Class TWTRRequestSigningOperation is implemented in both /private/var/containers/Bundle/Application/B90F531E-C7AD-43E6-9EF8-584D399A11E0/my.app/Frameworks/TwitterKit.framework/TwitterKit (0x105fc9740) and /private/var/containers/Bundle/Application/B90F531E-C7AD-43E6-9EF8-584D399A11E0/my.app/Frameworks/TwitterCore.framework/TwitterCore (0x105d01098). One of the two will be used. Which one is undefined.
    objc[2541]: Class TWTRGuestRequestSigningOperation is implemented in both /private/var/containers/Bundle/Application/B90F531E-C7AD-43E6-9EF8-584D399A11E0/my.app/Frameworks/TwitterKit.framework/TwitterKit (0x105fc9790) and /private/var/containers/Bundle/Application/B90F531E-C7AD-43E6-9EF8-584D399A11E0/my.app/Frameworks/TwitterCore.framework/TwitterCore (0x105d010e8). One of the two will be used. Which one is undefined.
    objc[2541]: Class TWTRUserRequestSigningOperation is implemented in both /private/var/containers/Bundle/Application/B90F531E-C7AD-43E6-9EF8-584D399A11E0/my.app/Frameworks/TwitterKit.framework/TwitterKit (0x105fc97e0) and /private/var/containers/Bundle/Application/B90F531E-C7AD-43E6-9EF8-584D399A11E0/my.app/Frameworks/TwitterCore.framework/TwitterCore (0x105d01138). One of the two will be used. Which one is undefined.
    objc[2541]: Class TWTRColorUtil is implemented in both /private/var/containers/Bundle/Application/B90F531E-C7AD-43E6-9EF8-584D399A11E0/my.app/Frameworks/TwitterKit.framework/TwitterKit (0x105fc9830) and /private/var/containers/Bundle/Application/B90F531E-C7AD-43E6-9EF8-584D399A11E0/my.app/Frameworks/TwitterCore.framework/TwitterCore (0x105d01188). One of the two will be used. Which one is undefined.
    objc[2541]: Class TWTRFileManager is implemented in both /private/var/containers/Bundle/Application/B90F531E-C7AD-43E6-9EF8-584D399A11E0/my.app/Frameworks/TwitterKit.framework/TwitterKit (0x105fc98a8) and /private/var/containers/Bundle/Application/B90F531E-C7AD-43E6-9EF8-584D399A11E0/my.app/Frameworks/TwitterCore.framework/TwitterCore (0x105d01200). One of the two will be used. Which one is undefined.
    objc[2541]: Class TWTRGuestSessionRefreshStrategy is implemented in both /private/var/containers/Bundle/Application/B90F531E-C7AD-43E6-9EF8-584D399A11E0/my.app/Frameworks/TwitterKit.framework/TwitterKit (0x105fc98d0) and /private/var/containers/Bundle/Application/B90F531E-C7AD-43E6-9EF8-584D399A11E0/my.app/Frameworks/TwitterCore.framework/TwitterCore (0x105d01228). One of the two will be used. Which one is undefined.
    objc[2541]: Class TFSScribe is implemented in both /private/var/containers/Bundle/Application/B90F531E-C7AD-43E6-9EF8-584D399A11E0/my.app/Frameworks/TwitterKit.framework/TwitterKit (0x105fc9920) and /private/var/containers/Bundle/Application/B90F531E-C7AD-43E6-9EF8-584D399A11E0/my.app/Frameworks/TwitterCore.framework/TwitterCore (0x105d01278). One of the two will be used. Which one is undefined.
    objc[2541]: Class TFSScribeEvent is implemented in both /private/var/containers/Bundle/Application/B90F531E-C7AD-43E6-9EF8-584D399A11E0/my.app/Frameworks/TwitterKit.framework/TwitterKit (0x105fc9998) and /private/var/containers/Bundle/Application/B90F531E-C7AD-43E6-9EF8-584D399A11E0/my.app/Frameworks/TwitterCore.framework/TwitterCore (0x105d012f0). One of the two will be used. Which one is undefined.
    objc[2541]: Class TWTRResourcesUtil is implemented in both /private/var/containers/Bundle/Application/B90F531E-C7AD-43E6-9EF8-584D399A11E0/my.app/Frameworks/TwitterKit.framework/TwitterKit (0x105fc99c0) and /private/var/containers/Bundle/Application/B90F531E-C7AD-43E6-9EF8-584D399A11E0/my.app/Frameworks/TwitterCore.framework/TwitterCore (0x105d01318). One of the two will be used. Which one is undefined.
    objc[2541]: Class TWTRAuthenticationProvider is implemented in both /private/var/containers/Bundle/Application/B90F531E-C7AD-43E6-9EF8-584D399A11E0/my.app/Frameworks/TwitterKit.framework/TwitterKit (0x105fc9a38) and /private/var/containers/Bundle/Application/B90F531E-C7AD-43E6-9EF8-584D399A11E0/my.app/Frameworks/TwitterCore.framework/TwitterCore (0x105d01390). One of the two will be used. Which one is undefined.
    objc[2541]: Class TWTRAuthConfig is implemented in both /private/var/containers/Bundle/Application/B90F531E-C7AD-43E6-9EF8-584D399A11E0/my.app/Frameworks/TwitterKit.framework/TwitterKit (0x105fc9a60) and /private/var/containers/Bundle/Application/B90F531E-C7AD-43E6-9EF8-584D399A11E0/my.app/Frameworks/TwitterCore.framework/TwitterCore (0x105d013b8). One of the two will be used. Which one is undefined.
    objc[2541]: Class TWTRDateUtil is implemented in both /private/var/containers/Bundle/Application/B90F531E-C7AD-43E6-9EF8-584D399A11E0/my.app/Frameworks/TwitterKit.framework/TwitterKit (0x105fc9ad8) and /private/var/containers/Bundle/Application/B90F531E-C7AD-43E6-9EF8-584D399A11E0/my.app/Frameworks/TwitterCore.framework/TwitterCore (0x105d01430). One of the two will be used. Which one is undefined.
    objc[2541]: Class TWTRUserSessionVerifier is implemented in both /private/var/containers/Bundle/Application/B90F531E-C7AD-43E6-9EF8-584D399A11E0/my.app/Frameworks/TwitterKit.framework/TwitterKit (0x105fc9b00) and /private/var/containers/Bundle/Application/B90F531E-C7AD-43E6-9EF8-584D399A11E0/my.app/Frameworks/TwitterCore.framework/TwitterCore (0x105d01458). One of the two will be used. Which one is undefined.
    objc[2541]: Class TWTRGuestAuthProvider is implemented in both /private/var/containers/Bundle/Application/B90F531E-C7AD-43E6-9EF8-584D399A11E0/my.app/Frameworks/TwitterKit.framework/TwitterKit (0x105fc9b50) and /private/var/containers/Bundle/Application/B90F531E-C7AD-43E6-9EF8-584D399A11E0/my.app/Frameworks/TwitterCore.framework/TwitterCore (0x105d014a8). One of the two will be used. Which one is undefined.
    objc[2541]: Class TWTRScribeMediaDetails is implemented in both /private/var/containers/Bundle/Application/B90F531E-C7AD-43E6-9EF8-584D399A11E0/my.app/Frameworks/TwitterKit.framework/TwitterKit (0x105fc9ba0) and /private/var/containers/Bundle/Application/B90F531E-C7AD-43E6-9EF8-584D399A11E0/my.app/Frameworks/TwitterCore.framework/TwitterCore (0x105d014f8). One of the two will be used. Which one is undefined.
    objc[2541]: Class TWTRIdentifier is implemented in both /private/var/containers/Bundle/Application/B90F531E-C7AD-43E6-9EF8-584D399A11E0/my.app/Frameworks/TwitterKit.framework/TwitterKit (0x105fc9c18) and /private/var/containers/Bundle/Application/B90F531E-C7AD-43E6-9EF8-584D399A11E0/my.app/Frameworks/TwitterCore.framework/TwitterCore (0x105d01570). One of the two will be used. Which one is undefined.
    objc[2541]: Class TWTRScribeEvent is implemented in both /private/var/containers/Bundle/Application/B90F531E-C7AD-43E6-9EF8-584D399A11E0/my.app/Frameworks/TwitterKit.framework/TwitterKit (0x105fc9c40) and /private/var/containers/Bundle/Application/B90F531E-C7AD-43E6-9EF8-584D399A11E0/my.app/Frameworks/TwitterCore.framework/TwitterCore (0x105d01598). One of the two will be used. Which one is undefined.
    objc[2541]: Class TWTRErrorScribeEvent is implemented in both /private/var/containers/Bundle/Application/B90F531E-C7AD-43E6-9EF8-584D399A11E0/my.app/Frameworks/TwitterKit.framework/TwitterKit (0x105fc9c90) and /private/var/containers/Bundle/Application/B90F531E-C7AD-43E6-9EF8-584D399A11E0/my.app/Frameworks/TwitterCore.framework/TwitterCore (0x105d015e8). One of the two will be used. Which one is undefined.
    objc[2541]: Class TWTRGenericKeychainQuery is implemented in both /private/var/containers/Bundle/Application/B90F531E-C7AD-43E6-9EF8-584D399A11E0/my.app/Frameworks/TwitterKit.framework/TwitterKit (0x105fc9ce0) and /private/var/containers/Bundle/Application/B90F531E-C7AD-43E6-9EF8-584D399A11E0/my.app/Frameworks/TwitterCore.framework/TwitterCore (0x105d01638). One of the two will be used. Which one is undefined.
    objc[2541]: Class TWTRGenericKeychainItem is implemented in both /private/var/containers/Bundle/Application/B90F531E-C7AD-43E6-9EF8-584D399A11E0/my.app/Frameworks/TwitterKit.framework/TwitterKit (0x105fc9d30) and /private/var/containers/Bundle/Application/B90F531E-C7AD-43E6-9EF8-584D399A11E0/my.app/Frameworks/TwitterCore.framework/TwitterCore (0x105d01688). One of the two will be used. Which one is undefined.
    objc[2541]: Class TWTRNetworkingPipeline is implemented in both /private/var/containers/Bundle/Application/B90F531E-C7AD-43E6-9EF8-584D399A11E0/my.app/Frameworks/TwitterKit.framework/TwitterKit (0x105fc9d80) and /private/var/containers/Bundle/Application/B90F531E-C7AD-43E6-9EF8-584D399A11E0/my.app/Frameworks/TwitterCore.framework/TwitterCore (0x105d016d8). One of the two will be used. Which one is undefined.
    objc[2541]: Class TWTRCore is implemented in both /private/var/containers/Bundle/Application/B90F531E-C7AD-43E6-9EF8-584D399A11E0/my.app/Frameworks/TwitterKit.framework/TwitterKit (0x105fc9df8) and /private/var/containers/Bundle/Application/B90F531E-C7AD-43E6-9EF8-584D399A11E0/my.app/Frameworks/TwitterCore.framework/TwitterCore (0x105d01750). One of the two will be used. Which one is undefined.
    objc[2541]: Class TWTRAppAPIClient is implemented in both /private/var/containers/Bundle/Application/B90F531E-C7AD-43E6-9EF8-584D399A11E0/my.app/Frameworks/TwitterKit.framework/TwitterKit (0x105fc9e20) and /private/var/containers/Bundle/Application/B90F531E-C7AD-43E6-9EF8-584D399A11E0/my.app/Frameworks/TwitterCore.framework/TwitterCore (0x105d01778). One of the two will be used. Which one is undefined.
    objc[2541]: Class TWTRAPIServiceConfigRegistry is implemented in both /private/var/containers/Bundle/Application/B90F531E-C7AD-43E6-9EF8-584D399A11E0/my.app/Frameworks/TwitterKit.framework/TwitterKit (0x105fc9e70) and /private/var/containers/Bundle/Application/B90F531E-C7AD-43E6-9EF8-584D399A11E0/my.app/Frameworks/TwitterCore.framework/TwitterCore (0x105d017c8). One of the two will be used. Which one is undefined.
    objc[2541]: Class TWTRAuthConfigSessionsValidator is implemented in both /private/var/containers/Bundle/Application/B90F531E-C7AD-43E6-9EF8-584D399A11E0/my.app/Frameworks/TwitterKit.framework/TwitterKit (0x105fc9ec0) and /private/var/containers/Bundle/Application/B90F531E-C7AD-43E6-9EF8-584D399A11E0/my.app/Frameworks/TwitterCore.framework/TwitterCore (0x105d01818). One of the two will be used. Which one is undefined.
    objc[2541]: Class TWTRScribeItem is implemented in both /private/var/containers/Bundle/Application/B90F531E-C7AD-43E6-9EF8-584D399A11E0/my.app/Frameworks/TwitterKit.framework/TwitterKit (0x105fc9f10) and /private/var/containers/Bundle/Application/B90F531E-C7AD-43E6-9EF8-584D399A11E0/my.app/Frameworks/TwitterCore.framework/TwitterCore (0x105d01868). One of the two will be used. Which one is undefined.
    objc[2541]: Class TWTRScribeCardEvent is implemented in both /private/var/containers/Bundle/Application/B90F531E-C7AD-43E6-9EF8-584D399A11E0/my.app/Frameworks/TwitterKit.framework/TwitterKit (0x105fc9f60) and /private/var/containers/Bundle/Application/B90F531E-C7AD-43E6-9EF8-584D399A11E0/my.app/Frameworks/TwitterCore.framework/TwitterCore (0x105d018b8). One of the two will be used. Which one is undefined.
    objc[2541]: Class TWTRTokenOnlyAuthSession is implemented in both /private/var/containers/Bundle/Application/B90F531E-C7AD-43E6-9EF8-584D399A11E0/my.app/Frameworks/TwitterKit.framework/TwitterKit (0x105fc9fb0) and /private/var/containers/Bundle/Application/B90F531E-C7AD-43E6-9EF8-584D399A11E0/my.app/Frameworks/TwitterCore.framework/TwitterCore (0x105d01908). One of the two will be used. Which one is undefined.
    objc[2541]: Class TWTRURLSessionDelegate is implemented in both /private/var/containers/Bundle/Application/B90F531E-C7AD-43E6-9EF8-584D399A11E0/my.app/Frameworks/TwitterKit.framework/TwitterKit (0x105fca000) and /private/var/containers/Bundle/Application/B90F531E-C7AD-43E6-9EF8-584D399A11E0/my.app/Frameworks/TwitterCore.framework/TwitterCore (0x105d01958). One of the two will be used. Which one is undefined.
    objc[2541]: Class TWTRScribeFilterDetails is implemented in both /private/var/containers/Bundle/Application/B90F531E-C7AD-43E6-9EF8-584D399A11E0/my.app/Frameworks/TwitterKit.framework/TwitterKit (0x105fca050) and /private/var/containers/Bundle/Application/B90F531E-C7AD-43E6-9EF8-584D399A11E0/my.app/Frameworks/TwitterCore.framework/TwitterCore (0x105d019a8). One of the two will be used. Which one is undefined.
    objc[2541]: Class TWTRNetworkingUtil is implemented in both /private/var/containers/Bundle/Application/B90F531E-C7AD-43E6-9EF8-584D399A11E0/my.app/Frameworks/TwitterKit.framework/TwitterKit (0x105fca0a0) and /private/var/containers/Bundle/Application/B90F531E-C7AD-43E6-9EF8-584D399A11E0/my.app/Frameworks/TwitterCore.framework/TwitterCore (0x105d019f8). One of the two will be used. Which one is undefined.
    objc[2541]: Class TWTROAuth1aAuthRequestSigner is implemented in both /private/var/containers/Bundle/Application/B90F531E-C7AD-43E6-9EF8-584D399A11E0/my.app/Frameworks/TwitterKit.framework/TwitterKit (0x105fca118) and /private/var/containers/Bundle/Application/B90F531E-C7AD-43E6-9EF8-584D399A11E0/my.app/Frameworks/TwitterCore.framework/TwitterCore (0x105d01a70). One of the two will be used. Which one is undefined.
    objc[2541]: Class TWTRGCOAuth is implemented in both /private/var/containers/Bundle/Application/B90F531E-C7AD-43E6-9EF8-584D399A11E0/my.app/Frameworks/TwitterKit.framework/TwitterKit (0x105fca140) and /private/var/containers/Bundle/Application/B90F531E-C7AD-43E6-9EF8-584D399A11E0/my.app/Frameworks/TwitterCore.framework/TwitterCore (0x105d01a98). One of the two will be used. Which one is undefined.
    objc[2541]: Class TWTRAppInstallationUUID is implemented in both /private/var/containers/Bundle/Application/B90F531E-C7AD-43E6-9EF8-584D399A11E0/my.app/Frameworks/TwitterKit.framework/TwitterKit (0x105fca1b8) and /private/var/containers/Bundle/Application/B90F531E-C7AD-43E6-9EF8-584D399A11E0/my.app/Frameworks/TwitterCore.framework/TwitterCore (0x105d01b10). One of the two will be used. Which one is undefined.
    objc[2541]: Class TWTRNetworkSessionProvider is implemented in both /private/var/containers/Bundle/Application/B90F531E-C7AD-43E6-9EF8-584D399A11E0/my.app/Frameworks/TwitterKit.framework/TwitterKit (0x105fca1e0) and /private/var/containers/Bundle/Application/B90F531E-C7AD-43E6-9EF8-584D399A11E0/my.app/Frameworks/TwitterCore.framework/TwitterCore (0x105d01b38). One of the two will be used. Which one is undefined.
    objc[2541]: Class TWTRSessionStore is implemented in both /private/var/containers/Bundle/Application/B90F531E-C7AD-43E6-9EF8-584D399A11E0/my.app/Frameworks/TwitterKit.framework/TwitterKit (0x105fca230) and /private/var/containers/Bundle/Application/B90F531E-C7AD-43E6-9EF8-584D399A11E0/my.app/Frameworks/TwitterCore.framework/TwitterCore (0x105d01b88). One of the two will be used. Which one is undefined.
    objc[2541]: Class TWTRNetworkingPipelineQueue is implemented in both /private/var/containers/Bundle/Application/B90F531E-C7AD-43E6-9EF8-584D399A11E0/my.app/Frameworks/TwitterKit.framework/TwitterKit (0x105fca280) and /private/var/containers/Bundle/Application/B90F531E-C7AD-43E6-9EF8-584D399A11E0/my.app/Frameworks/TwitterCore.framework/TwitterCore (0x105d01bd8). One of the two will be used. Which one is undefined.
    objc[2541]: Class TWTRAuthConfigStore is implemented in both /private/var/containers/Bundle/Application/B90F531E-C7AD-43E6-9EF8-584D399A11E0/my.app/Frameworks/TwitterKit.framework/TwitterKit (0x105fca2d0) and /private/var/containers/Bundle/Application/B90F531E-C7AD-43E6-9EF8-584D399A11E0/my.app/Frameworks/TwitterCore.framework/TwitterCore (0x105d01c28). One of the two will be used. Which one is undefined.
    objc[2541]: Class TWTRCoreLanguage is implemented in both /private/var/containers/Bundle/Application/B90F531E-C7AD-43E6-9EF8-584D399A11E0/my.app/Frameworks/TwitterKit.framework/TwitterKit (0x105fca348) and /private/var/containers/Bundle/Application/B90F531E-C7AD-43E6-9EF8-584D399A11E0/my.app/Frameworks/TwitterCore.framework/TwitterCore (0x105d01ca0). One of the two will be used. Which one is undefined.
    objc[2541]: Class TWTRSession is implemented in both /private/var/containers/Bundle/Application/B90F531E-C7AD-43E6-9EF8-584D399A11E0/my.app/Frameworks/TwitterKit.framework/TwitterKit (0x105fca370) and /private/var/containers/Bundle/Application/B90F531E-C7AD-43E6-9EF8-584D399A11E0/my.app/Frameworks/TwitterCore.framework/TwitterCore (0x105d01cc8). One of the two will be used. Which one is undefined.
    objc[2541]: Class TWTRX509Certificate is implemented in both /private/var/containers/Bundle/Application/B90F531E-C7AD-43E6-9EF8-584D399A11E0/my.app/Frameworks/TwitterKit.framework/TwitterKit (0x105fca3c0) and /private/var/containers/Bundle/Application/B90F531E-C7AD-43E6-9EF8-584D399A11E0/my.app/Frameworks/TwitterCore.framework/TwitterCore (0x105d01d18). One of the two will be used. Which one is undefined.
    objc[2541]: Class TFSScribeImpression is implemented in both /private/var/containers/Bundle/Application/B90F531E-C7AD-43E6-9EF8-584D399A11E0/my.app/Frameworks/TwitterKit.framework/TwitterKit (0x105fca438) and /private/var/containers/Bundle/Application/B90F531E-C7AD-43E6-9EF8-584D399A11E0/my.app/Frameworks/TwitterCore.framework/TwitterCore (0x105d01d90). One of the two will be used. Which one is undefined.
    objc[2541]: Class TWTRAppleSocialAuthenticaticationProvider is implemented in both /private/var/containers/Bundle/Application/B90F531E-C7AD-43E6-9EF8-584D399A11E0/my.app/Frameworks/TwitterKit.framework/TwitterKit (0x105fca460) and /private/var/containers/Bundle/Application/B90F531E-C7AD-43E6-9EF8-584D399A11E0/my.app/Frameworks/TwitterCore.framework/TwitterCore (0x105d01db8). One of the two will be used. Which one is undefined.
    objc[2541]: Class TWTRAPIDateSync is implemented in both /private/var/containers/Bundle/Application/B90F531E-C7AD-43E6-9EF8-584D399A11E0/my.app/Frameworks/TwitterKit.framework/TwitterKit (0x105fca4b0) and /private/var/containers/Bundle/Application/B90F531E-C7AD-43E6-9EF8-584D399A11E0/my.app/Frameworks/TwitterCore.framework/TwitterCore (0x105d01e08). One of the two will be used. Which one is undefined.
    objc[2541]: Class TWTRDictUtil is implemented in both /private/var/containers/Bundle/Application/B90F531E-C7AD-43E6-9EF8-584D399A11E0/my.app/Frameworks/TwitterKit.framework/TwitterKit (0x105fca500) and /private/var/containers/Bundle/Application/B90F531E-C7AD-43E6-9EF8-584D399A11E0/my.app/Frameworks/TwitterCore.framework/TwitterCore (0x105d01e58). One of the two will be used. Which one is undefined.
    objc[2541]: Class TWTRMultiThreadUtil is implemented in both /private/var/containers/Bundle/Application/B90F531E-C7AD-43E6-9EF8-584D399A11E0/my.app/Frameworks/TwitterKit.framework/TwitterKit (0x105fca550) and /private/var/containers/Bundle/Application/B90F531E-C7AD-43E6-9EF8-584D399A11E0/my.app/Frameworks/TwitterCore.framework/TwitterCore (0x105d01ea8). One of the two will be used. Which one is undefined.
    objc[2541]: Class TWTRAuthenticator is implemented in both /private/var/containers/Bundle/Application/B90F531E-C7AD-43E6-9EF8-584D399A11E0/my.app/Frameworks/TwitterKit.framework/TwitterKit (0x105fca5c8) and /private/var/containers/Bundle/Application/B90F531E-C7AD-43E6-9EF8-584D399A11E0/my.app/Frameworks/TwitterCore.framework/TwitterCore (0x105d01f20). One of the two will be used. Which one is undefined.
    objc[2541]: Class TWTRGuestSession is implemented in both /private/var/containers/Bundle/Application/B90F531E-C7AD-43E6-9EF8-584D399A11E0/my.app/Frameworks/TwitterKit.framework/TwitterKit (0x105fca5f0) and /private/var/containers/Bundle/Application/B90F531E-C7AD-43E6-9EF8-584D399A11E0/my.app/Frameworks/TwitterCore.framework/TwitterCore (0x105d01f48). One of the two will be used. Which one is undefined.
    objc[2541]: Class TWTRUtils is implemented in both /private/var/containers/Bundle/Application/B90F531E-C7AD-43E6-9EF8-584D399A11E0/my.app/Frameworks/TwitterKit.framework/TwitterKit (0x105fca640) and /private/var/containers/Bundle/Application/B90F531E-C7AD-43E6-9EF8-584D399A11E0/my.app/Frameworks/TwitterCore.framework/TwitterCore (0x105d01f98). One of the two will be used. Which one is undefined.
    objc[2541]: Class TWTRNetworkingPipelinePackage is implemented in both /private/var/containers/Bundle/Application/B90F531E-C7AD-43E6-9EF8-584D399A11E0/my.app/Frameworks/TwitterKit.framework/TwitterKit (0x105fca690) and /private/var/containers/Bundle/Application/B90F531E-C7AD-43E6-9EF8-584D399A11E0/my.app/Frameworks/TwitterCore.framework/TwitterCore (0x105d01fe8). One of the two will be used. Which one is undefined.
    objc[2541]: Class TWTRServerTrustEvaluator is implemented in both /private/var/containers/Bundle/Application/B90F531E-C7AD-43E6-9EF8-584D399A11E0/my.app/Frameworks/TwitterKit.framework/TwitterKit (0x105fca6e0) and /private/var/containers/Bundle/Application/B90F531E-C7AD-43E6-9EF8-584D399A11E0/my.app/Frameworks/TwitterCore.framework/TwitterCore (0x105d02038). One of the two will be used. Which one is undefined.
    objc[2541]: Class TWTRAppAuthProvider is implemented in both /private/var/containers/Bundle/Application/B90F531E-C7AD-43E6-9EF8-584D399A11E0/my.app/Frameworks/TwitterKit.framework/TwitterKit (0x105fca730) and /private/var/containers/Bundle/Application/B90F531E-C7AD-43E6-9EF8-584D399A11E0/my.app/Frameworks/TwitterCore.framework/TwitterCore (0x105d02088). One of the two will be used. Which one is undefined.
    
    • Steps to reproduce the problem (include logs and/or sample code where appropriate):

    Use TwitterKit framework in app. (using cocoapods, although the problem possibly might happen without cocoapods)

    pod 'TwitterKit'

      • Expected behavior: No logs like described.
      • iOS Version (eg. iOS 10.2): iOS 11.2.1
      • iOS Device Model (eg. iPhone 6): iPhone 6s plus
      • TwitterKit/TwitterCore Version Number: Using TwitterCore (3.1.0) Using TwitterKit (3.3.0)
    opened by zapjonny 60
  • TWTRCompose doesn't store session after signing in - endless loop of signing in / granting permissions instead

    TWTRCompose doesn't store session after signing in - endless loop of signing in / granting permissions instead

    After logging in / granting permissions via TWTRCompose, no session is stored / available

    Expected behavior

    Logging in / granting permissions via TWTRCompose will create a session, so when I try to show the window, I'll be able to send a tweet.

    Actual behavior

    Trying to open the TWTRCompose only opens Twitter and asks me to grant permissions, over and over again.

    Steps to reproduce the behavior

    Show a TWTRCompose. Log in / accept permissions.
    Try to press the tweet button again to actually send the tweet, and instead go right back to the permissions page

    opened by JacobJT 20
  • Fixes #1: height not initially calculated when initial text is long

    Fixes #1: height not initially calculated when initial text is long

    I reproduced this in the Twitter for iOS share extension on iOS 11. I think this is the simplest fix.

    TWTRSETweetTextViewContainer is not re-calculating its number of lines when it's re-laid out.

    Before: simulator screen shot - iphone 8 - 2017-12-20 at 11 32 03

    After: simulator screen shot - iphone 8 - 2017-12-20 at 11 30 39

    Related PRs: https://github.com/twitter/twitter-kit-ios/pull/9

    I think this is a better fix than that PR because it only re-calculates the number of lines, instead of re-configuring the whole view for the tweet contents every time the view is laid out.

    opened by JaviSoto 19
  • TWTRComposer height problem

    TWTRComposer height problem

    Bug Report I don't understand why you have closed the same bug that is still exist.

    • Steps to reproduce the problem: When setting a TWTRComposer using the snip code with predefined text, the height of the Tweet view doesn't update:
    screen shot 2018-03-06 at 15 47 52
    • Expected behavior: Tweet should have a height that let's the user scroll and look at the pre-defined text tweet. Example: Tap on the opened tweet with the predefined text, and tap any character inside the Tweet view, the height grows up immediately.
    • [ ] iOS Version (iOS 11.2):
    • [ ] iOS Device Model (iPhone 5S all the way up to X):
    • [ ] TwitterKit version 3.3.0
    opened by OhadMaor-VIA 18
  • Repo ignored by maintainers

    Repo ignored by maintainers

    Widely used repo for major social platform doesn't receive updates or acknowledgment for plethora of issues

    Expected behavior

    Project maintainers respond to issues, fix bugs in a timely manner

    Actual behavior

    Issues go ignored and bugs that should be a simple fix remain in the production release

    Steps to reproduce the behavior

    Try to use the SDK and experience issues, report the issues.

    opened by JacobJT 13
  • Error in present Image, video on iphone X

    Error in present Image, video on iphone X

    One line summary of the issue here. I using twitterkit ver 3.3 and twittercore ver 3.1

    In iphone X, when i click one item in timeline (video or image) the close button (X button) is over and under the status bar as attached image. Can some one help me ? simulator screen shot - iphone x - 2018-04-02 at 11 35 09

    opened by HieuLsw 13
  • TWTRComposer does not update its height

    TWTRComposer does not update its height

    TwitterCore 3.1.0 TwitterKit 3.3.0

    Current Behavior:

    When presenting a tweet with TWTRComposer the inner scroll view does not adjust its height or content height when it is given prefilled text, cutting off any text below the fold.

    Expected Behavior:

    The composer should dynamically update it's height based on tweet length

    Sample code:

            let composer = TWTRComposer()
            composer.setText(content.title)
            composer.setURL(content.src.url)
            composer.show(from: viewController) { result in
                switch result {
                case .done:
                    self.trackShare(for: .twitter)
                default:
                    break
                }
            }
    

    Screens:

    simulator screen shot - iphone x - 2017-12-14 at 14 30 10

    simulator screen shot - iphone x - 2017-12-14 at 14 30 23

    opened by AndrewBarba 12
  • In application not presenting Safari if twitter app is not install

    In application not presenting Safari if twitter app is not install

    I am trying to login with Twitter, but if twitter is not installed it is not allowing me to login via safari, It is giving this kind if warning Warning: Attempt to present <UINavigationController: 0x10787d000> on <UINavigationController: 0x1080b0e00> whose view is not in the window hierarchy! here is my code

    in appdelegate

    func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplicationLaunchOptionsKey: Any]?) -> Bool { TWTRTwitter.sharedInstance().start(withConsumerKey: "Consumarkey", consumerSecret: "Secret") }

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

        if  GIDSignIn.sharedInstance().handle(url,sourceApplication: options[UIApplicationOpenURLOptionsKey.sourceApplication] as? String,annotation: options[UIApplicationOpenURLOptionsKey.annotation])
        {
            return true
        }
        if TWTRTwitter.sharedInstance().application(app, open: url, options: options) {
            return true
        }
        return FBSDKApplicationDelegate.sharedInstance().application(app, open: url, sourceApplication: options[UIApplicationOpenURLOptionsKey.sourceApplication] as! String, annotation: [:])
        
    }
    

    TWTRTwitter.sharedInstance().logIn(completion: { (session, error) in if (session != nil) { let user_id = session?.userID self.type = social.twitter.rawValue DELEGATE.dicSocialSignUpData.setValue(String(user_id!), forKey: "socialId") self.socialid = user_id! let client = TWTRAPIClient.withCurrentUser() client.loadUser(withID: user_id!, completion: { (user, error) in if user != nil { let name = user!.name if name.contains("_") { let seprated_name = name.components(separatedBy: " ") self.firstname = seprated_name[0] self.lastname = seprated_name[1] } else { self.firstname = name } DELEGATE.dicSocialSignUpData.setValue(user!.name, forKey: "name") DELEGATE.dicSocialSignUpData.setValue(user!.profileImageURL, forKey: "profile_image") self.image = user!.profileImageURL } client.requestEmail { email, error in if (email != nil) { self.emailR = "(String(describing: email!))" DELEGATE.dicSocialSignUpData.setValue(String(describing: email!), forKey: "email") } else { print("error: (String(describing: error?.localizedDescription))"); } let store = TWTRTwitter.sharedInstance().sessionStore if let userID = store.session()?.userID { store.logOutUserID(userID) } self.socialLogin(social_id: "(String(describing: session?.userName))", social_type: social.twitter.rawValue) } })

            } else {
                print("error: \(String(describing: error?.localizedDescription))");
            }
        })
    

    Also seted callback url twitterkit-ConsumerKey://

    pods I used TwitterCore (3.1.0) TwitterKit (3.3.0)

    opened by Nidhi30 10
  • TwiiterComposer dismissing my view controller (iOS)

    TwiiterComposer dismissing my view controller (iOS)

    Me and many like me are facing issue of dismissing of Presenting View controller automatically for error in case of login. Issue is reported by many, check that here : https://twittercommunity.com/t/twitterkit-is-dismissing-callee-controller-in-airplane-mode/93239.

    Even in case of user cancels login.

    opened by vanitaladkat 9
  • 在推特授权应用中心中取消对应用的授权,该应用无法再次获取推特的授权

    在推特授权应用中心中取消对应用的授权,该应用无法再次获取推特的授权

    按照正常的开发流程,应用可以正常的调用推特的授权界面,授权并进行分享操作。 但是在推特授权应用中心列表中取消对该应用的授权后,应用分享失败。控制名打出如下提示信息 [TwitterKit] did encounter error with message "Error obtaining user auth token.": Error Domain=TWTRLogInErrorDomain Code=-1 "<?xml version="1.0" encoding="UTF-8"?><errors><error code="415">Callback URL not approved for this client application. Approved callback URLs can be adjusted in your application settings</error></errors>" UserInfo={NSLocalizedDescription=<?xml version="1.0" encoding="UTF-8"?><errors><error code="415">Callback URL not approved for this client application. Approved callback URLs can be adjusted in your application settings</error></errors>} 我做了以下尝试: 查看当前用户 [[Twitter sharedInstance].sessionStore hasLoggedInUsers] 该方法返回有用户登录,但是分享失败。 然后我接着尝试以下方法:

    1. 退出当前登录的用户
        for (TWTRSession * Session in [Twitter sharedInstance].sessionStore.existingUserSessions) {
            [[Twitter sharedInstance].sessionStore logOutUserID:Session.userID];
        }
    
    1. 重新调用login方未能进行登录
          [[Twitter sharedInstance] logInWithCompletion:^(TWTRSession * _Nullable session, NSError * _Nullable error) {
                    if (session) {
    //分享操作
                    } else {
    //错误提示
                    }
                }
            }];
    

    该登录方法不在弹出授权界面,也不会弹出登录页,等待几秒后,返回上述的错误信息。 以上问题是在没有twitter客户端的情况下出现的,有客户端情况下可以正常授权。 以上方式均无法正常获取授权。请各位开发人员帮忙解决。 在取消授权后,再次调用登录方法应可以再试打开授权页进行授权操作。 PS:在示例中,判断当前是否有登录用户,有则可以进行分享,该逻辑存在漏洞,如果用户授权失败或在twitter中取消对该应用的授权,后续操作都会失败,这里应该加上一个授权是否有效的检测。 @garru @mgadda @baroquebobcat @niw @amro please help me, thank you!

    opened by zhipengbird 7
  • Composer not showing after connecting my app with my twitter

    Composer not showing after connecting my app with my twitter

    Hi

    I'm currently having trouble presenting the composer in my app, when I click the twitter button my apps opens twitter and shows a screen asking me to connect my account to my app, and after I click the connect button the screen closes and goes back to my app, but after that nothing is happening, I was expecting to se a twitter popup that let me compose a tweet, am i doing something wrong?

    Thanks.

    opened by barcennas 6
  • [iOS 13] web popped when use Twitter app login

    [iOS 13] web popped when use Twitter app login

    UIApplicationOpenURLOptionsSourceApplicationKey (aka sourceApplication) returns nil in iOS 13. You can no longer use that value to detect login authenticate is web based or app based.

    Expected behavior

    SafariController will NOT popped up when using app login.

    Actual behavior

    SafariController will popped up.

    Steps to reproduce the behavior

    • Use iOS 13
    • Twitter app is installed
    • Tap "Login with Twitter" from your app
    • Tap "Authenticate" in Twitter

    Question

    How to detect login is web based or app based in iOS 13? (without using sourceApplication) Or is there any other solution here?

    opened by HackingGate 1
  • v3.4.1 how to open webview auth page when I use [Twitter sharedInstance] logInWithCompletion:^**] method?

    v3.4.1 how to open webview auth page when I use [Twitter sharedInstance] logInWithCompletion:^**] method?

    How to open webview auth page when I use [Twitter sharedInstance] logInWithCompletion:^**] method? or other way to login in with Twitter? ps: v3.4.1 in the project now.

    Expected behavior

    Open the app for authorization when the twitter app is installed, and open the webview page for authorization when the app is not installed.

    Actual behavior

    login in with Twitter is ok only when Twitter app is installed, it will false auth when Twitter app is not installed. It can't open the webview page when using this method.

    Steps to reproduce the behavior

    Just use [Twitter sharedInstance] logInWithCompletion:^**] method to auth before login in with Twitter.

    Thanks.

    opened by s1lence2012 4
  • IOS removing UIWebView

    IOS removing UIWebView

    This package uses UIWebView, Is there a way of removing just that section?

    ITMS-90809: Deprecated API Usage - Apple will stop accepting submissions of apps that use UIWebView APIs . See https://developer.apple.com/documentation/uikit/uiwebview for more information.

    opened by maximus123123 5
  • TWTRComposerResultCancelled

    TWTRComposerResultCancelled

    I don't know why callback TWTRComposerResultCancelled always when I share with tweet.

    TWTRComposer *composer = [[TWTRComposer alloc] init]; [composer setText:@"tweet share test"]; // [composer setImage:[UIImage imageWithData:[NSData dataWithContentsOfURL:[NSURL URLWithString:imageUrl]]]]; // [composer setURL:[NSURL URLWithString:shareContent]]; [composer showFromViewController:from completion:^(TWTRComposerResult result){ if(result == TWTRComposerResultCancelled) { }else{ } }];

    opened by licl19 1
  • Access periscope API failed

    Access periscope API failed

    I try to access "https://api.periscope.tv/api/v2/loginTwitter" by sendTwitterRequest after login but the response is 400. I'm sure my token,secret is correct. what should I do?

    #define kPeriscopeParaLoginSession           @"session_key"
    #define kPeriscopeParaLoginSessionSecret     @"session_secret"
    #define kPeriscopeParaLoginUserId            @"user_id"
    #define kPeriscopeParaLoginUserName          @"user_name"
    
        TWTRLogInButton *logInButton = [TWTRLogInButton buttonWithLogInCompletion:^(TWTRSession *session, NSError *error) {
            if (session) {
                NSLog(@"signed in as token:%@,secret:%@,user:%@,Id:%@", session.authToken, session.authTokenSecret, session.userName, session.userID);
                
                NSDictionary *dic = @{
                                      kPeriscopeParaLoginSession        : session.authToken,
                                      kPeriscopeParaLoginSessionSecret  : session.authTokenSecret,
                                      kPeriscopeParaLoginUserId         : session.userID,
                                      kPeriscopeParaLoginUserName       : session.userName,
                                      };
                TWTRAPIClient *client = [TWTRAPIClient clientWithCurrentUser];
                NSString *statusesShowEndpoint = @"https://api.periscope.tv/api/v2/loginTwitter";
            
                NSError *clientError;
                NSURLRequest *request =  [client URLRequestWithMethod:@"POST" URLString:statusesShowEndpoint parameters:dic error:&clientError];
                if (request) {
                    [client sendTwitterRequest:request completion:^(NSURLResponse *response, NSData *data, NSError *connectionError) {
                        if (data) {
                            // handle the response data e.g.
                            NSDictionary * dict = [self JSONObjectWithData:data options:kNilOptions error:NULL];
                            NSLog(@"data%@,dict:%@, error code:%ld,%@",data, dict,(long)error.code,error.localizedDescription);
                            if(dict)
                            {
                                self.loginResponseDic  = dict;
                                self.sessionToken      = session.authToken;
                                self.sessionSecret     = session.authTokenSecret;
                                self.cookie            = [self.loginResponseDic objectForKey:kPeriscopeParaCookie];
                            }
                        }
                        else {
                            NSLog(@"Error: %@", connectionError);
                        }
                    }];
                }
                else {
                    NSLog(@"Error: %@", clientError);
                }
            } else {
                NSLog(@"error: %@", [error localizedDescription]);
            }
        }];
    
    opened by XiaoDongXie1024 0
Releases(v3.4.2)
Owner
Twitter Archive
Unmaintained Twitter Open Source Projects
Twitter Archive
Px-mobile-sdk-demo-app - PerimeterX Mobile SDK - Demo App

About PerimeterX PerimeterX is the leading provider of application security solu

PerimeterX 1 Nov 20, 2022
Patched sdks that include private framework tbds.

sdks Patched sdks that include private framework tbds. This repository contains patched iOS SDKs containing private symbols. These were removed from o

Chris Harper 14 Dec 4, 2022
iOS SDK for the Box Content API

Box iOS SDK Getting Started Docs: https://developer.box.com/guides/mobile/ios/quick-start/ NOTE: The Box iOS SDK in Objective-C (prior to v3.0.0) has

Box 112 Dec 19, 2022
Zendesk Mobile SDK for iOS

⚠️ This Repository has been deprecated, please go to here for the Zendesk Support SDK ⚠️ Zendesk Mobile SDK for iOS Zendesk SDK for mobile is a quick,

Zendesk 113 Dec 24, 2022
iOS SDK for growing mobile in-app purchases

Adapty iOS SDK — in-app purchases start here Adapty SDK is an open-source framework that makes implementing in-app subscriptions in iOS fast and easy.

Adapty 339 Dec 14, 2022
Alter SDK is a cross-platform SDK consisting of a real-time 3D avatar system, facial motion capture, and an Avatar Designer component built from scratch for web3 interoperability and the open metaverse.

Alter SDK is a cross-platform SDK consisting of a real-time 3D avatar system, facial motion capture, and an Avatar Designer component built from scratch for web3 interoperability and the open metaverse.

Alter 45 Nov 29, 2022
Project(s) for iOS mobile apps

Pre-work - Calculator tip app tip calculator is a tip calculator application for iOS. Submitted by: William Hiltz Time spent: 2 hours spent in total U

null 0 Jan 9, 2022
Native iOS implementation of RadarCOVID tracing client using DP3T iOS SDK

RadarCOVID iOS App Introduction Native iOS implementation of RadarCOVID tracing client using DP3T iOS SDK Prerequisites These are the tools used to bu

Radar COVID 146 Nov 24, 2022
Primer iOS SDK - Instantly deploy native screens without writing code

Instantly deploy native screens without writing code. Primer enables you to design and test new user experiences, and personalize them for each user.

Primer 6 Mar 23, 2018
150,000+ stickers API & SDK for iOS Apps.

English | 한국어 Stipop UI SDK for iOS Stipop SDK provides over 150,000 .png and .gif stickers that can be easily integrated into mobile app chats, comme

Stipop, Inc. 19 Dec 20, 2022
Home-assistant-swift-sdk - Used to integrate the Home Assistant APIs with your Swift-based apps.

home-assistant-swift-sdk This open-source library allows you to interact with a Home Assistant instance in your Swift-based (e.g., iOS, macOS, etc.) a

Alexander Golden 0 Dec 31, 2021
MbientLab 2 Feb 5, 2022
iOS Mobile Automation With Swift

ios-mobile-automation Since I could hardly find any resources on iOS automation

Ahmethan G. 0 Dec 19, 2021
Stacksift App SDK

Stacksift SDK Capture and submit crashes to Stacksift. This library ties together Wells and Impact to provide a full crash capturing and submission sy

Stacksift 44 Aug 18, 2022
TelegramStickersImport — Telegram stickers importing SDK for iOS

TelegramStickersImport — Telegram stickers importing SDK for iOS TelegramStickersImport helps your users import third-party programaticaly created sti

null 35 Oct 26, 2022
RadioTimeKit - The Swift SDK for TuneIn RadioTimeKit is a Swift package to use the TuneIn API.

RadioTimeKit - The Swift SDK for TuneIn RadioTimeKit is a Swift package to use the TuneIn API. The goal for development was to have a Swift SDK to get

Frank Gregor 2 Jun 20, 2022
Official Appwrite SDK for Apple Devices 🍎

Appwrite Apple SDK This SDK is compatible with Appwrite server version 0.11.x. For older versions, please check previous releases. Appwrite is an open

Appwrite 55 Jan 2, 2023
Official Appwrite Swift SDK 🦅🍎

Appwrite Swift SDK This SDK is compatible with Appwrite server version 0.11.x. For older versions, please check previous releases. This is the Swift S

Appwrite 27 Dec 25, 2022
Muxer used on top of Feed iOS SDK for airplay

FeedAirplayMuxer Muxer used on top of Feed iOS SDK for airplay purposes. Demo Project --> https://github.com/feedfm/AirplayDemo Feed Airplay Muxer is

Feed Media 0 May 6, 2022