2014-12-01 31 views
0

我用TMTumblrSDK的tumblr一個reblog(TMTumblrSDK)返回401錯誤

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版本類似的問題:Getting 401 (Not Authorized), when calling Tumblr post reblog api 還懸而未決

回答

2

我解決我的問題。 在傳遞登錄用戶的博客URL所需的「reblogPost」值中,不是博客url,我們想要做的。 例如,如果我們想要做「測試」用戶的文章,我們不能通過「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) { 
     ... 
    }]; 

}]; 
相關問題