Accessing Twitter Direct Messages using SLRequest iOS

后端 未结 2 853
小蘑菇
小蘑菇 2021-01-03 06:24

I need to access the Direct Messages using SLrequest. I got the oAuthToken and oAuthToken Secret using the Reverse oAuth of twitter. Now I need to know how to fetch the dire

相关标签:
2条回答
  • 2021-01-03 06:43

    Here is how to access direct messages for the iOS default Twitter account.

    This example uses the STTwitter library, which internally uses SLRequest for phase 2 and a custom crafted request for phase 1.

    NSString *CONSUMER_KEY = @"";
    NSString *CONSUMER_SECRET = @"";
    
    STTwitterAPI *twitter = [STTwitterAPI twitterAPIWithOAuthConsumerName:nil
                                                              consumerKey:CONSUMER_KEY
                                                           consumerSecret:CONSUMER_SECRET];
    
    [twitter postReverseOAuthTokenRequest:^(NSString *authenticationHeader) {
    
        STTwitterAPI *twitterAPIOS = [STTwitterAPI twitterAPIOSWithFirstAccount];
    
        [twitterAPIOS verifyCredentialsWithSuccessBlock:^(NSString *username) {
    
            [twitterAPIOS postReverseAuthAccessTokenWithAuthenticationHeader:authenticationHeader
                                                                successBlock:^(NSString *oAuthToken,
                                                                               NSString *oAuthTokenSecret,
                                                                               NSString *userID,
                                                                               NSString *screenName) {
    
                                                                    STTwitterAPI *x = [STTwitterAPI twitterAPIWithOAuthConsumerName:nil
                                                                                                                        consumerKey:CONSUMER_KEY
                                                                                                                     consumerSecret:CONSUMER_SECRET
                                                                                                                         oauthToken:oAuthToken
                                                                                                                   oauthTokenSecret:oAuthTokenSecret];
    
                                                                    [x verifyCredentialsWithSuccessBlock:^(NSString *username) {
    
                                                                        [x getDirectMessagesSinceID:nil count:10 successBlock:^(NSArray *messages) {
                                                                            // ...
                                                                        } errorBlock:^(NSError *error) {
                                                                            // ...
                                                                        }];
    
                                                                    } errorBlock:^(NSError *error) {
                                                                        // ...
                                                                    }];
    
    
                                                                } errorBlock:^(NSError *error) {
                                                                    // ...
                                                                }];
    
        } errorBlock:^(NSError *error) {
            // ...
        }];
    
    } errorBlock:^(NSError *error) {
        // ...
    }];
    
    0 讨论(0)
  • 2021-01-03 06:44

    You can't do it using reverse authentication. Reverse authentication basically gives you access to the OAuth tokens at the same access level as the root iOS app, so you can do twitter processing on a remote server. It doesn't use the expanded permissions from your twitter app from the dev portal. As documented on twitter's website, you have to use the full OAuth authentication flow, including the web popup, to gain the user's explicit permission to access direct messages.

    0 讨论(0)
提交回复
热议问题