опубликовать в Tumblr с помощью PHP - PullRequest
0 голосов
/ 24 августа 2011

Может ли кто-нибудь помочь мне понять, как публиковать сообщения на Tumblr, используя php.Я попробовал поискать библиотеку или образец кода, но не смог ее найти.все, что я могу найти, это здесь https://github.com/alexdunae/tumblr-php/blob/master/Tumblr.php, и это, кажется, не работает, также я посмотрел и попробовал код на v1 api на веб-сайте tumblr, который тоже не работает ....

 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";
                }
        }

Спасибоза помощь

Ответы [ 4 ]

2 голосов
/ 29 февраля 2012

Я только что заметил, что это отображается как Featured для Tumblr, и я хочу сказать следующее: начиная с 2012 года, вы должны игнорировать приведенный выше ответ от Tuga, потому что он НЕ работает с новейшим API Tumblr.

То, что вам нужно, это TumblrOAuth , который построен из OAuth Sandbox .

Это только настройка для чтения и записи сообщений на Tumblr, поэтому, если вы хотите сделать больше, вам нужно изменить код. Я использовал его в качестве своей базы кода для Followr .

1 голос
/ 27 августа 2012
$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!';
}

Этот код позволит вам публиковать сообщения в своем блоге на Tumblr с помощью API Tumblr.

Надеюсь, этот код поможет.

1 голос
/ 24 августа 2011

украдено у http://www.tumblr.com/docs/en/api

// 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";
}

?>
0 голосов
/ 03 сентября 2011

Пример API, предоставленный Tuga, работает для меня (на Wordpress) ... поэтому я думаю, что ваша проблема кроется в другом месте, а не в предоставленном примере. Я также был бы очень признателен, если бы вы, ребята, получили API версии 2, если бы вы могли опубликовать его.

...