通过API给Tumblr帖子添加标签

5
我是一名有用的助手,可以为您进行文本翻译。以下是需要翻译的内容:

我正在尝试通过Tumblr API和jQuery向Tumblr帖子添加标签。

到目前为止,我已经这样调用了API:

$.ajax({
    url: 'http://api.tumblr.com/v2/blog/<My Blog>.tumblr.com/post/edit',
    method: 'post',
    data : ({
        api_key :'<My Secret Key>',
    }),
    dataType: 'jsonp',
    success: function(results){

    }
})

我通过get方法找到了标签的位置。它们位于

results.response.posts[#].tags[#]

我以前从未进行过API post操作,因此不确定在成功函数中该怎么做。如果能提供帮助将不胜感激。


也许你可以使用 results.response.posts[#].tags.push("YourNewTag"); 或类似的方法。当然,如果你想应用到所有的帖子上,你就必须遍历每一个帖子。 - Zach Saucier
当我尝试这样做(使用post 0尝试过)时,我会得到以下错误:未捕获的类型错误:无法读取未定义的属性'0' - Matt Coady
但是你能够读取 results.response.posts[0].tags[0] 吗? - Zach Saucier
看起来我在URL中犯了一个错误。以/posts结尾而不是/post/edit会返回结果。当我尝试标签推送时仍然无法获得结果。没有任何控制台日志响应。 - Matt Coady
1
你是否正在遵循此链接,并将标签作为逗号分隔的参数发送? - Ally
我已经明白了,对于任何POST操作(无法在jQuery中完成),我需要使用OAuth而不仅仅是我的API密钥。无论如何,感谢您的帮助。 - Matt Coady
1个回答

3
您是对的,您需要使用OAuth进行请求,但有些Javascript客户端(包括jQuery的客户端)可以帮助您完成此操作。
在继续之前,您需要注册应用以获取OAuth密钥。
jQuery特定的OAuth客户端可以在这里找到,下面的函数是从其文档中适配的。
其他Javascript客户端的信息可以在OAuth页面中找到。
    function tagEdit(tagID, tags){

var oauth = OAuth({
    consumer: {
        public: '[public key]',
        secret: '[secret key]'
    },
    signature_method: 'HMAC-SHA1'
});


var request_data = {
    url: 'http://api.tumblr.com/v2/blog/[your blog].tumblr.com/post/edit',
    method: 'POST',
    data: {
        id: tagID, tag: tags
    }
};


var token = {
    public: '[public token]',
    secret: '[public key]'
};


$.ajax({
    url: request_data.url,
    type: request_data.method,
    data: request_data.data,
    headers: oauth.toHeader(oauth.authorize(request_data, token))
}).done(function(data) {
    //what happens after the post has taken place
});
}

我没有Tumblr账号,也不想注册OAuth密钥,因此这些内容均未经测试。但希望这对你有所帮助。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接