使用php发布到tumblr

使用php发布到tumblr,php,tumblr,Php,Tumblr,有人能帮我弄清楚如何使用php发布到tumblr吗。 我试着在谷歌上搜索库或示例代码,但找不到。我在这里能找到的就是这个,它似乎不起作用。我在tumblr网站上查看并尝试了v1API上的代码,但也不起作用 function post($data){ if(function_exists("curl_version")){ $data["email"] = $this->email;

有人能帮我弄清楚如何使用php发布到tumblr吗。 我试着在谷歌上搜索库或示例代码,但找不到。我在这里能找到的就是这个,它似乎不起作用。我在tumblr网站上查看并尝试了v1API上的代码,但也不起作用

 function post($data){
                if(function_exists("curl_version")){
                        $data["email"] = $this->email;
                        $data["password"] = $this->password;
                        $data["generator"] = $this->generator;
                        $request = http_build_query($data);
                        $c = curl_init('http://www.tumblr.com/api/write');
                        curl_setopt($c,CURLOPT_POST,true);
                        curl_setopt($c,CURLOPT_POSTFIELDS,$request);
                        curl_setopt($c,CURLOPT_RETURNTRANSFER,true);
                        $return = curl_exec($c);
                        $status = curl_getinfo($c,CURLINFO_HTTP_CODE);
                        curl_close($c);
                        if($status == "201"){
                            return true;
                        }
                        elseif($status == "403"){
                            return false;
                        }
                        else{
                            return "error: $return";
                        }
                }
                else{
                        return "error: cURL not installed";
                }
        }
感谢您的帮助




Tuga提供的api示例对我有用(在Wordpress上)…所以我认为你的问题在别处,而不是提供的示例。如果你们能发布第2版api,我也会非常感激。

Tuga提供的api示例对我有用(在Wordpress上)…所以我认为你们的问题在别处,而不是提供的示例。如果你们能发布第2版api,我也会非常感激。我刚刚注意到这是Tumblr的特色,我想说的是:从2012年开始,你应该忽略Tuga的上述回答,因为它不适用于最新的Tumblr api

你需要的是用它建造的


它只是用来读写Tumblr文章的,所以如果你想做更多的事情,你需要修改代码。我用它作为我的代码库。

我刚刚注意到这是Tumblr的特色,我想说的是:从2012年开始,您应该忽略Tuga的上述回答,因为它不适用于最新的Tumblr API

你需要的是用它建造的

它只是用来读写Tumblr文章的,所以如果你想做更多的事情,你需要修改代码。我用它作为我的代码库

此代码将允许您使用TumblrAPI发布到您的tumblr博客

我希望这段代码有帮助

此代码将允许您使用TumblrAPI发布到您的tumblr博客


我希望这段代码能有所帮助。

总是阅读官方文档,通常位于官方网站,总是阅读官方文档,通常位于官方网站,这似乎不起作用。。。tumblr已将身份验证过程更改为包含oauth。。。我已经试过了。。。。不过,感谢您的努力和帮助,我感谢您的响应。thumblr现在似乎正在使用API v2,我没有找到脚本,但我设法找到了一些好的文档。如果你找到一个解决方案,请张贴在这里,以备将来的帮助,我也会这样做。GL:)我找到了一个,一个用python编写的简单的Tumblr API v2库,看看你是否能使用它,它非常新(2011年8月4日)。Tumblr现在已经禁用了他们的旧API(v1),所以这将不再有效。这似乎不起作用。。。tumblr已将身份验证过程更改为包含oauth。。。我已经试过了。。。。不过,感谢您的努力和帮助,我感谢您的响应。thumblr现在似乎正在使用API v2,我没有找到脚本,但我设法找到了一些好的文档。如果你找到一个解决方案,请张贴在这里,以备将来的帮助,我也会这样做。GL:)我找到了一个,一个用python编写的简单的Tumblr API v2库,看看你是否能使用它,它非常新(2011年8月4日)。Tumblr现在已经禁用了他们的旧API(v1),所以它不再工作了。你是如何编写它的?您是否可以将其发布到此处,以便我们提供帮助。您缺少OAuth类。您需要确保您的php版本已启用OAuth扩展。您是如何尝试对其进行编码的?您是否可以将其发布到此处以便我们提供帮助。您缺少OAuth类。您需要确保您的php版本已启用OAuth扩展。
// Authorization info
$tumblr_email    = 'info@davidville.com';
$tumblr_password = 'secret';

// Data for new record
$post_type  = 'regular';
$post_title = 'The post title';
$post_body  = 'This is the body of the post.';

// Prepare POST request
$request_data = http_build_query(
    array(
        'email'     => $tumblr_email,
        'password'  => $tumblr_password,
        'type'      => $post_type,
        'title'     => $post_title,
        'body'      => $post_body,
        'generator' => 'API example'
    )
);

// Send the POST request (with cURL)
$c = curl_init('http://www.tumblr.com/api/write');
curl_setopt($c, CURLOPT_POST, true);
curl_setopt($c, CURLOPT_POSTFIELDS, $request_data);
curl_setopt($c, CURLOPT_RETURNTRANSFER, true);
$result = curl_exec($c);
$status = curl_getinfo($c, CURLINFO_HTTP_CODE);
curl_close($c);

// Check for success
if ($status == 201) {
    echo "Success! The new post ID is $result.\n";
} else if ($status == 403) {
    echo 'Bad email or password';
} else {
    echo "Error: $result\n";
}

?>
$conskey = "CONSUMER KEY";
$conssec = "CONSUMER SECRET";

$tumblr_blog = "myblog.tumblr.com";
$to_be_posted = "This is the text to be posted";

$oauth = new OAuth($conskey,$conssec);
$oauth->fetch("http://api.tumblr.com/v2/blog/".$tumblr_blog."/post", array('type'=>'text', 'body'=>$to_be_posted), OAUTH_HTTP_METHOD_POST);

$result = json_decode($oauth->getLastResponse());

if($result->meta->status == 200){
  echo 'Success!';
}