SLRequest - Twitter返回代码215(错误的身份验证数据) [英] SLRequest - Twitter returns code 215 (Bad authentication data)
问题描述
我有应用程序上传照片像在Instagram应用程序。首先,我的应用程式上传相片并传回连结。然后发送链接状态消息。当我测试我的iPhone一切都是确定,但当我测试另一个iPhone,然后twitter返回代码215错误的身份验证数据。任何想法可能是错误?
I have application with upload photo like in Instagram app. First my app uploads photo and returns link. Then sends link in status message. When I'm testing on my iPhone everything is ok, but when I'm testing on another iPhone then twitter return code 215 bad authentication data. Any ideas what could be wrong? Thx for reply.
- (void)tweet:(NSString *)identifier withCompletionHandler:(void (^)())completionHandler {
ACAccountStore *accountStore = [[ACAccountStore alloc] init];
// Create an account type that ensures Twitter accounts are retrieved.
ACAccountType *accountType = [accountStore accountTypeWithAccountTypeIdentifier:ACAccountTypeIdentifierTwitter];
// Request access from the user to use their Twitter accounts.
[accountStore requestAccessToAccountsWithType:accountType withCompletionHandler:^(BOOL granted, NSError *error) {
if(granted) {
if (identifier) {
// Get the list of Twitter accounts.
NSArray *accountsArray = [accountStore accountsWithAccountType:accountType];
if ([accountsArray count] > 0) {
// Grab the initial Twitter account to tweet from.
NSURL *url = [NSURL URLWithString:@"https://api.twitter.com/1.1/statuses/update.json"];
NSDictionary *dict = [NSDictionary dictionaryWithObject:[NSString stringWithFormat:@"Check out this great flick on BLA BLA %@", [BLA_URL stringByAppendingFormat:@"/%@/%@", @"flick", identifier]]
forKey:@"status"];
SLRequest *request = [SLRequest requestForServiceType:SLServiceTypeTwitter
requestMethod:SLRequestMethodPOST
URL:url
parameters:dict];
[request setAccount:[accountsArray lastObject]];
[request performRequestWithHandler:^(NSData *responseData, NSHTTPURLResponse *urlResponse, NSError *error) {
if ([urlResponse statusCode] == 200) {
NSLog(@"TWEEET!");
}
else {
NSError *jsonError;
id data = [NSJSONSerialization JSONObjectWithData:responseData
options:NSJSONReadingMutableLeaves
error:&jsonError];
dispatch_async(dispatch_get_main_queue(), ^{
UIAlertView *alertView = [[UIAlertView alloc] initWithTitle:@"Twitter response"
message:[NSString stringWithFormat:@"%d S: %d %@", [error code], [urlResponse statusCode], data]
delegate:self
cancelButtonTitle:@"Ok"
otherButtonTitles:nil];
NSLog(@"NOOO TWEEET!");
[alertView show];
completionHandler();
});
}
}];
...
预检功能:
- (IBAction)twitterButtonTapped:(id)sender {
if ([self.twitterButton isSelected]) {
[self.twitterButton setSelected:NO];
}
else {
[self.twitterButton setSelected:YES];
ACAccountStore *accountStore = [[ACAccountStore alloc] init];
ACAccountType *accountType = [accountStore accountTypeWithAccountTypeIdentifier:ACAccountTypeIdentifierTwitter];
[accountStore requestAccessToAccountsWithType:accountType withCompletionHandler:^(BOOL granted, NSError *error) {
if (!granted) {
[self.twitterButton setSelected:NO];
UIAlertView *alertView = [[UIAlertView alloc] initWithTitle:@"Twitter access"
message:@"Please make sure you have allowed twitter for BLA BLA in your Settings."
delegate:self
cancelButtonTitle:@"Ok"
otherButtonTitles:nil];
[alertView performSelectorOnMainThread:@selector(show) withObject:nil waitUntilDone:NO];
}
}];
}
}
推荐答案
好,我有答案!问题是,其他iPhone的帐户数据不完整 - 您必须在设置应用中填写用户名和密码。
Ok, I've got the answer! Problem was that other iPhone has incomplete account data - meanings you have to has filled username and password in your Settings app.
这篇关于SLRequest - Twitter返回代码215(错误的身份验证数据)的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!