Twitterを持っていないユーザー向けのアプリを構築しているため、ユーザー認証ができません。ユーザータイムラインでは機能しましたが、検索では機能しませんでした。
Twitter から次のエラーが返ってきました。
{"errors":[{"message":"Could not authenticate you","code":32}]}
動作する私のコードは次のとおりです。
MKNetworkOperation *operation = [[MKNetworkOperation alloc] initWithURLString:@"https://api.twitter.com/1.1/statuses/user_timeline.json" params:[@{ @"screen_name" : user } mutableCopy] httpMethod:@"GET"];
[operation addHeaders:@{ @"Authorization" : [self OAuthHeaderForURL:[NSURL URLWithString:operation.url]] }];
[operation onCompletion:^(MKNetworkOperation *completedOperation) {
completionBlock([completedOperation responseJSON]);
} onError:^(NSError *error) {
NSLog(@"\n\n\nError bij User: %@", error);
}];
[self.networkEngine enqueueOperation:operation];
そして、これは問題のあるコードです:
MKNetworkOperation *operation = [[MKNetworkOperation alloc] initWithURLString:@"https://api.twitter.com/1.1/search/tweets.json" params:[@{ @"q" : [NSString stringWithFormat:@"#%@", hashtag] } mutableCopy] httpMethod:@"GET"];
[operation addHeaders:@{ @"Authorization" : [self OAuthHeaderForURL:[NSURL URLWithString:operation.url]] }];
[operation onCompletion:^(MKNetworkOperation *completedOperation) {
completionBlock([completedOperation responseJSON]);
} onError:^(NSError *error) {
NSLog(@"\n\n\nError bij Hashtag: %@", error);
}];
[self.networkEngine enqueueOperation:operation];
cURL コマンド ライン文字列は次のとおりです。
curl -X GET -H "Authorization: OAuth oauth_consumer_key="XizVPuR2LQcnL9xAzMo6AA", oauth_nonce="2806C6BC-5B67-42E4-BAC9-1D3F2D8A", oauth_signature_method="HMAC-SHA1", oauth_timestamp="1371545629", oauth_version="1.0", oauth_token="74944468-tYmMuxMaaZUxiTHuZ78Y9qljCqCiPcfKvhavS9wuU", oauth_signature="6E1ggIZYIBrRQJ9i1LeqLQBM5fc%3D"" -H "Accept-Language: en, fr, de, ja, nl, it, es, pt, pt-PT, da, fi, nb, sv, ko, zh-Hans, zh-Hant, ru, pl, tr, uk, ar, hr, cs, el, he, ro, sk, th, id, ms, en-GB, ca, hu, vi, en-us" "https://api.twitter.com/1.1/search/tweets.json?q=%23demeern"
誰かが私を助けることができれば、それは素晴らしいことです.