1

我正在使用以下代码在我的 Android 应用程序中将文本发布到 tumblr:

public class Snippet {
    HttpPost hpost = new HttpPost("http://api.tumblr.com/v2/blog/" + blogname.getText().toString() + ".tumblr.com/post");
    List<NameValuePair> nameValuePairs = new ArrayList<NameValuePair>(2);
    nameValuePairs.add(new BasicNameValuePair("type", "text"));
    nameValuePairs.add(new BasicNameValuePair("title", title));
    nameValuePairs.add(new BasicNameValuePair("body", body));
    try 
    {
        hpost.setEntity(new UrlEncodedFormEntity(nameValuePairs));
    }
    catch (UnsupportedEncodingException e) 
    {
        debug += e.toString();
    }
    consumer = new CommonsHttpOAuthConsumer(CONSUMER_KEY, CONSUMER_SECRET);
    consumer.setTokenWithSecret(token, secret);
    try 
    {
        consumer.sign(hpost);
    } catch (OAuthMessageSignerException e) 
    {
        debug += e.toString();
    } catch (OAuthExpectationFailedException e) 
    {
        debug += e.toString();
    } catch (OAuthCommunicationException e) 
    {
        debug += e.toString();
    }
    DefaultHttpClient client = new DefaultHttpClient();
    HttpResponse resp = null;
    try 
    {
        resp = client.execute(hpost);
    } catch (ClientProtocolException e) 
    {
        debug += e.toString();
    } catch (IOException e) 
    {
        debug += e.toString();
    }
    String result = null;
    try {
        result = EntityUtils.toString(resp.getEntity());
    } catch (ParseException e) 
    {
        debug += e.toString();
    } catch (IOException e) 
    {
        debug += e.toString();
    }
}

然后我得到以下结果:

{"meta":{"status":401,"msg":"Not Authorized"},"response":[]}

我错过了什么吗?我有正确的访问令牌和密钥。

4

3 回答 3

0
HttpPost hpost = new HttpPost("http://api.tumblr.com/v2/blog/" + blogname.getText().toString() + ".tumblr.com/post");

替换.tumblr.com/post.tumblr.com/posts

于 2013-05-02T12:46:52.747 回答
0

您首先需要在 tumblr 上创建一个博客,然后您才能在该博客上发帖。您需要手动创建一个博客,然后在该博客上发帖。

于 2012-12-28T08:03:11.847 回答
0

检查您的标题、正文或博客名称,如果它等于 null,您的回复将是 401

于 2012-12-18T14:11:20.120 回答