php api tumblr หา OAUTH TOKEN , OAUTH_SECRET ได้จากไหนครับ
ผมไปเจอ code นี้มามีแค่ไฟล์นี้แต่นำมาใช้ไม่เป็นน่ะครับลองใช้แล้วขึ้น error เป็น api tumblr upload photo ครับ
คิดว่าที่ต้องแก้คือสีแดงๆในโค๊ดใช่หรือเปล่าครับ แต่ผมหาไม่เจอน่ะครับ
เอามาจากหน้านี้ครับ https://gist.github.com/1649885#file_upload.php
ที่ผมอยากทราบ
1.consumer_key และ consumer_secret คือ api ของ tumblr ของผมใช่หรือเปล่าครับ
2.access_token และ access_secret หาได้จากไหนครับ เห็นเขาบอกให้ไป http://oauth.net/ แต่ผมหาไม่เจอน่ะครับ
3./path/to/file คืออะไรครับ รูปภาพที่เราต้องการโพสหรือเปล่า แล้วต้องแก้เป็นไฟล์ที่เก็บรูปหรืออย่างไรครับ
Warning: file_get_contents(/path/to/file) [function.file-get-contents]: failed to open stream: No such file or directory in /public_html/tumblr/index.php on line 54
Warning: file_get_contents(/path/to/file) [function.file-get-contents]: failed to open stream: No such file or directory in /public_html/tumblr/index.php on line 54
RoV6wkrovgHKWhtVrrcDdY4hBoE={"meta":{"status":401,"msg":"Not Authorized"},"response":[]}
Code
<?php
define("CONSUMER_KEY", "consumer_key ");
define("CONSUMER_SECRET", "consumer_secret ");
define("OAUTH_TOKEN", "access_token ");
define("OAUTH_SECRET", "access_secret ");
function oauth_gen($method, $url, $iparams, &$headers) {
$iparams['oauth_consumer_key'] = CONSUMER_KEY;
$iparams['oauth_nonce'] = strval(time());
$iparams['oauth_signature_method'] = 'HMAC-SHA1';
$iparams['oauth_timestamp'] = strval(time());
$iparams['oauth_token'] = OAUTH_TOKEN;
$iparams['oauth_version'] = '1.0';
$iparams['oauth_signature'] = oauth_sig($method, $url, $iparams);
print $iparams['oauth_signature'];
$oauth_header = array();
foreach($iparams as $key => $value) {
if (strpos($key, "oauth") !== false) {
$oauth_header []= $key ."=".$value;
}
}
$oauth_header = "OAuth ". implode(",", $oauth_header);
$headers["Authorization"] = $oauth_header;
}
function oauth_sig($method, $uri, $params) {
$parts []= $method;
$parts []= rawurlencode($uri);
$iparams = array();
ksort($params);
foreach($params as $key => $data) {
if(is_array($data)) {
$count = 0;
foreach($data as $val) {
$n = $key . "[". $count . "]";
$iparams []= $n . "=" . rawurlencode($val);
$count++;
}
} else {
$iparams[]= rawurlencode($key) . "=" .rawurlencode($data);
}
}
$parts []= rawurlencode(implode("&", $iparams));
$sig = implode("&", $parts);
return base64_encode(hash_hmac('sha1', $sig, CONSUMER_SECRET."&". OAUTH_SECRET, true));
}
$headers = array("Host" => "http://api.tumblr.com/", "Content-type" => "application/x-www-form-urlencoded", "Expect" => "");
$params = array("data" => array(file_get_contents("/path/to/file "), file_get_contents("/path/to/file ")),
"type" => "photo");
$blogname = "testing.tumblr.com ";
oauth_gen("POST", "http://api.tumblr.com/v2/blog/$blogname/post", $params, $headers);
$ch = curl_init();
curl_setopt($ch, CURLOPT_USERAGENT, "PHP Uploader Tumblr v1.0");
curl_setopt($ch, CURLOPT_URL, "http://api.tumblr.com/v2/blog/$blogname/post");
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1 );
curl_setopt($ch, CURLOPT_HTTPHEADER, array(
"Authorization: " . $headers['Authorization'],
"Content-type: " . $headers["Content-type"],
"Expect: ")
);
$params = http_build_query($params);
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_POSTFIELDS, $params);
$response = curl_exec($ch);
print $response;
?>
Tag : PHP
Date :
2012-04-10 14:44:24
By :
pm
View :
1349
Reply :
1
code ที่ผมเอามามันโพสได้ทีละรูปหรือเปล่าครับ ผมอยากให้โพสได้เยอะๆแบบ คนนี้ ช่วยแก้ให้ผมทีนะครับ เห็นมีคนมาตอบด้านล่างแล้วแต่ทำตามไม่เป็น ขอบคุณครับ
http://stackoverflow.com/questions/2869883/uploading-multiple-images-through-tumblr-api
Date :
2012-04-10 15:00:44
By :
pm
Load balance : Server 04