Tumblr reblog(TMTumblrSDK)返回401错误

时间:2014-12-01 15:44:39

标签: ios api authentication oauth tumblr

我使用TMTumblrSDK

NSDictionary *params = @{
                     @"id" : 999999999999,
                     @"reblog_key": @"XXXXXX",
                     @"comment" : @"test comment",
                     };  

[[TMAPIClient sharedInstance] reblogPost:@"test.tumblr.com"
                          parameters:params
                            callback:^(id response, NSError *error) { 

...

response:
{
   meta = {
   msg = "Not Authorized";
   status = 401;
};
   response = (
);
}

OAuthConsumerKey,OAuthConsumerSecret,OAuthToken,OAuthTokenSecret已正确设置。 方法"用户/关注" "用户/像"和"用户/不像"工作正常。

关于android-version的类似问题:Getting 401 (Not Authorized), when calling Tumblr post reblog api 也没有答案

1 个答案:

答案 0 :(得分:2)

我解决了我的问题。 在" reblogPost"传输登录用户的博客URL所需的值,而不是博客网址,我们想要做的。 例如,如果我们想要发表" test"的帖子。用户,我们不能通过" test.tumblr.com"。我们必须通过" loggedUser.tumblr.com"。

可以使用userInfo方法获得。 例如:

NSString* baseHostname;
[[TMAPIClient sharedInstance] userInfo: ^(id result, NSError* error) {

         NSString * baseHostname = [result[@"user"][@"blogs"][0][@"url"] // first blog     
                                   stringByReplacingOccurrencesOfString:@"http:" withString:@""];
         baseHostname = [baseHostname stringByReplacingOccurrencesOfString:@"/" withString:@""];

     [[TMAPIClient sharedInstance] reblogPost: baseHostname  // @"loggedUser.tumblr.com"
                       parameters: params
                         callback: ^(id response, NSError * error) {
        ...
     }];

}];