我的问题是我可以成功登录tumblr然而,无法在tumblr上发布。 以下是我的代码
NSString *path = @"blog/myName.tumblr.com//post"; // set your Tumblr name here
NSDictionary *parameters = @{@"type" : @"text",
@"title" : @"I'm On on Tumblr",
@"body" : @"Its going to be fun"};
NSURLRequest *preparedRequest = [OAuth1Controller preparedRequestForPath:path
parameters:parameters
HTTPmethod:@"POST"
oauthToken:_oauthToken
oauthSecret:_oauthTokenSecret];
// Send the request and when received show the response in the text view
[NSURLConnection sendAsynchronousRequest:preparedRequest
queue:NSOperationQueue.mainQueue
completionHandler:^(NSURLResponse *response, NSData *data, NSError *error) {
dispatch_async(dispatch_get_main_queue(), ^{
self.promptView.text = [[NSString alloc] initWithData:data encoding:NSUTF8StringEncoding];
if (error) NSLog(@"Error in API request: %@", error.localizedDescription);
});
}];
下面是我的oAuthController实现文件,其中我设置了ConsumerKey,ConsumerSecrete和回调URL
#define OAUTH_CALLBACK @"tumblr_callback" //Sometimes this has to be the same as the registered app callback url
#define CONSUMER_KEY @"MyKey"
#define CONSUMER_SECRET @"MySecretKey"
#define AUTH_URL @"http://www.tumblr.com/oauth/"
#define REQUEST_TOKEN_URL @"request_token"
#define AUTHENTICATE_URL @"authorize"
#define ACCESS_TOKEN_URL @"access_token"
#define API_URL @"http://api.tumblr.com/v2/"
#define OAUTH_SCOPE_PARAM @""
以下是我收到
错误的屏幕截图我在哪里做错了。如有任何帮助,我们将不胜感激。
提前致谢。
答案 0 :(得分:0)
代码明智,你可能想在这里寻找一些东西。
您是否可以使用oauth'GET'请求,例如“http://api.tumblr.com/v2/user/info”?如果您可以收到成功的“GET”请求,那么您的访问令牌有效,您可以查看如何发送帖子参数。
确保您将参数作为HTTP正文以及签名参数传递。库可能提供了正确的参数排序。
NSString *postbody = @"body=myBodyText&type=text";
[oRequest setHTTPBody:[postbody dataUsingEncoding:NSUTF8StringEncoding allowLossyConversion:TRUE]];
** 替代解决方案**
总而言之,我使用GTM-OAuth登录并使用TumblrUploadr上传。对于那些寻求Tumblr API解决方案的人。
更新:有关GTMOAuth的一些信息,如果您想使用回调,则必须在GTMOAuthAuthentication.m>中添加一个标志。 +(NSArray *)tokenAuthorizeKeys:在数组中添加kOAuthCallbackKey,以便将其考虑在内。否则,你没有回调。