8

我正在尝试使用代码和这些说明来发送直接消息。发布一条普通的推文效果很好,但是当我尝试发送直接消息时,我得到了 406。

这是完整的代码:

ACAccountStore *account = [[ACAccountStore alloc] init];
ACAccountType *accountType = [account accountTypeWithAccountTypeIdentifier:ACAccountTypeIdentifierTwitter];

// Request access from the user to access their Twitter account
[account requestAccessToAccountsWithType:accountType withCompletionHandler:^(BOOL granted, NSError *error) {
    // Did user allow us access?
    if (granted == YES)
    {
        // Populate array with all available Twitter accounts
        NSArray *arrayOfAccounts = [account accountsWithAccountType:accountType];

        // Sanity check
        if ([arrayOfAccounts count] > 0) 
        {
            // Keep it simple, use the first account available
            ACAccount *acct = [arrayOfAccounts objectAtIndex:0];

            // Build a twitter request
            NSURL *url = [NSURL URLWithString:@"https://api.twitter.com/1/direct_messages/new.format"];
            NSDictionary *p = [NSDictionary dictionaryWithObjectsAndKeys:
                @"UserName",                    @"screen_name",
                @"Super awsome direct message", @"text",
                nil
            ];

            TWRequest *postRequest = [[TWRequest alloc]
                initWithURL:   url
                parameters:    p
                requestMethod: TWRequestMethodPOST
            ];

            // Post the request
            [postRequest setAccount:acct];

            // Block handler to manage the response
            [postRequest performRequestWithHandler:^(NSData *responseData, NSHTTPURLResponse *urlResponse, NSError *error) {
                NSLog(@"Twitter response, HTTP response: %i", [urlResponse statusCode]);
                CCLOG(@"Response Data\n%@", responseData);
                if (!error)
                    CCLOG(@"%@", [error description]);
            }];
        }
    }
}];
4

1 回答 1

8

尝试使用

https://api.twitter.com/1/direct_messages/new.json

代替

https://api.twitter.com/1/direct_messages/new.format

于 2012-04-20T22:25:33.003 回答