OAuth Echo TwitPic - 在iPhone上使用Twitter客户端

时间:2010-06-22 16:59:15

标签: iphone objective-c xcode twitpic

大家好,我一直在努力让Twitpic成功地通过我的iPhone应用程序上传图片。这在过去运作良好,但现在他们已经改变了所有授权代码。

这就是我所拥有的,并且由于某种原因只是让我失败了:

oAuth = [[OAuth alloc] initWithConsumerKey:twitter_consumer_key andConsumerSecret:twitter_consumer_secret];

    NSString *fakeurl = @"https://api.twitter.com/1/account/verify_credentials.json";
    NSString *oauth_header = [oAuth oAuthHeaderForMethod:@"GET" andUrl:fakeurl andParams:nil];
    NSLog(@"OAuth header : %@\n\n", oauth_header);

    NSString *url = @"http://api.twitpic.com/2/upload.json";

    ASIFormDataRequest *request = [ASIFormDataRequest requestWithURL:[NSURL URLWithString:url]];
    request.delegate = self;
    [request addRequestHeader:@"User-Agent" value:@"ASIHTTPRequest"];
    request.requestMethod = @"GET";

    [request addRequestHeader:@"X-Verify-Credentials-Authorization" value:oauth_header];    
    [request addRequestHeader:@"X-Auth-Service-Provider" value:@"https://api.twitter.com/1/account/verify_credentials.json"];   

    if (_imageData) {
        NSLog(@"Pic not nil");
    }

    [request setData:_imageData forKey:@"media"];
    [request setPostValue:@""  forKey:@"message"];  
    [request setPostValue:twitpic_api_key  forKey:@"key"];  

    [request setDelegate:self];
    [request setDidFinishSelector:@selector(requestDone:)];
    [request setDidFailSelector:@selector(requestFailed:)];

    [request start];

2 个答案:

答案 0 :(得分:1)

答案 1 :(得分:0)

看起来委托失败的方法传递了请求实例。您应该查询它以找出它具有的值,以确保您已正确设置所有内容。 It has a flag that can be set to dump a debug string of the request.

解决这些问题的第一步是确保您提交给服务器的字符串是正确的。尝试通过浏览器提交它并确保它有效,因为尝试在代码中构建它。