Dev Platform DVPL-2572 | Twitter app no longer functions with basic auth

Twitter no longer supports basic auth so we've switched to OAuth out of necessity. The Twitter API evolves quickly and the OAuth authentication model is relatively complex. Hence we're using third party code to interact with Twitter:

1   twython Version: 3.0.0
    Actively maintained, pure Python wrapper for the Twitter API. Supports both normal and streaming Twitter APIs
    MIT license
    See: twitter2/bin/twython/PKG_INFO

Missed during my initial investigation: These three 3rd-party Twython dependencies

2   oauthlib Version: 0.5.1
    A generic, spec-compliant, thorough implementation of the OAuth request-signing logic
    BSD license
    See: twitter2/bin/oauthlib/PKG_INFO for details

3   requests Version: 1.2.3
    Python HTTP for Humans.
    Apache v2.0 license
    See: twitter2/bin/requests/PKG_INFO for details

4   requests_oauthlib Version: 0.3.2
    OAuthlib authentication support for Requests.
    ISC license, functionally equivalent to the Simplified BSD license, see http://en.wikipedia.org/wiki/ISC_license
    See: twitter2/bin/requests_outhlib/PKG_INFO for details

Plus this Python 2.7 module which is not included by the Splunk Python runtime

5	uuid
    See: twitter2/bin/uuid.py for details

Twitter supports two forms of OAuth in its authentication model.

1   Application-user authentication
Requires signed requests that identify your application's identity in addition to the identity accompanying granted permissions of the end-user you're making API calls on behalf of, represented by the user's access token.

2   Application-only authentication
Where your application makes API requests on its own behalf, without a user context.

We're using the latter--Application-only authentication--because it's simpler and we have no need for a user context. As a result customers who install the Splunk-Twitter Connector will need to create a Twitter application and provide the application's OAuth settings. See twitter2/README.md and setup.xml for specifics.

This is the first of two commits I will be making:

1   Third party libraries
2   Splunk-Twitter Connector code changes

Signed-off-by: David Noble <dnoble@splunk.com>
Dev Platform DVPL-2572 | Twitter app no longer functions with basic auth

Dev Platform DVPL-2572 | Twitter app no longer functions with basic auth

Twitter no longer supports basic auth so we've switched to OAuth out of necessity. The Twitter API evolves quickly and the OAuth authentication model is relatively complex. Hence we're using third party code to interact with Twitter:

1   twython Version: 3.0.0
    Actively maintained, pure Python wrapper for the Twitter API. Supports both normal and streaming Twitter APIs
    MIT license
    See: twitter2/bin/twython/PKG_INFO

Missed during my initial investigation: These three 3rd-party Twython dependencies

2   oauthlib Version: 0.5.1
    A generic, spec-compliant, thorough implementation of the OAuth request-signing logic
    BSD license
    See: twitter2/bin/oauthlib/PKG_INFO for details

3   requests Version: 1.2.3
    Python HTTP for Humans.
    Apache v2.0 license
    See: twitter2/bin/requests/PKG_INFO for details

4   requests_oauthlib Version: 0.3.2
    OAuthlib authentication support for Requests.
    ISC license, functionally equivalent to the Simplified BSD license, see http://en.wikipedia.org/wiki/ISC_license
    See: twitter2/bin/requests_outhlib/PKG_INFO for details

Plus this Python 2.7 module which is not included by the Splunk Python runtime

5	uuid
    See: twitter2/bin/uuid.py for details

Twitter supports two forms of OAuth in its authentication model.

1   Application-user authentication
Requires signed requests that identify your application's identity in addition to the identity accompanying granted permissions of the end-user you're making API calls on behalf of, represented by the user's access token.

2   Application-only authentication
Where your application makes API requests on its own behalf, without a user context.

We're using the latter--Application-only authentication--because it's simpler and we have no need for a user context. As a result customers who install the Splunk-Twitter Connector will need to create a Twitter application and provide the application's OAuth settings. See twitter2/README.md and setup.xml for specifics.

This is the second of two commits required to complete this change:

1   Third party libraries
Out for code review: commit 2091f5b
2   Splunk-Twitter Connector code changes
This commit

Signed-off-by: David Noble <dnoble@splunk.com>
Dev Platform DVPL-2572 | Twitter app no longer functions with basic auth

Response to code review

Signed-off-by: David Noble <dnoble@splunk.com>
Dev Platform DVPL-2572 | Twitter app no longer functions with basic auth

Brought one line of code in verify_twitter_oauth_settings.py into alignment with a similar line of code in stream_tweets.py; line 121.

Signed-off-by: David Noble <dnoble@splunk.com>