我正在尝试自动发布消息到我的Tumblr博客(将通过Cron每天运行)
我在这里使用官方的Tumblr PHP库:https://github.com/tumblr/tumblr.php
并使用下面详细介绍的身份验证方法:https://github.com/tumblr/tumblr.php/wiki/Authentication(或部分,因为我不需要用户输入!)
我有下面的代码
require_once('vendor/autoload.php');
// some variables that will be pretttty useful
$consumerKey = 'MY-CONSUMER-KEY';
$consumerSecret = 'MY-CONSUMER-SECRET';
$client = new Tumblr\API\Client($consumerKey, $consumerSecret);
$requestHandler = $client->getRequestHandler();
$blogName = 'MY-BLOG-NAME';
$requestHandler->setBaseUrl('https://www.tumblr.com/');
// start the old gal up
$resp = $requestHandler->request('POST', 'oauth/request_token', array());
// get the oauth_token
$out = $result = $resp->body;
$data = array();
parse_str($out, $data);
// set the token
$client->setToken($data['oauth_token'], $data['oauth_token_secret']);
// change the baseURL so that we can use the desired Methods
$client->getRequestHandler()->setBaseUrl('http://api.tumblr.com');
// build the $postData into an array
$postData = array('title' => 'test title', 'body' => 'test body');
// call the creatPost function to post the $postData
$client->createPost($blogName, $postData);
但是,这会产生以下错误:
致命错误:未捕获的Tumblr\API\请求异常:[401]:在第426行的/home///*/vendor/tumblr/tumblr/lib/tumblr/API/客户端. php中抛出未授权
我可以检索博客文章和其他数据罚款(例如):
echo '<pre>';
print_r( $client->getBlogPosts($blogName, $options = null) );
echo '</pre>';
所以这似乎只是一个职位,我不能管理。
老实说,我并不真正了解OAuth认证,所以我使用的代码,更值得编码人员善意地免费提供:-)我认为我可以编辑掉https://github.com/tumblr/tumblr.php/wiki/Authentication的部分内容,因为我不需要用户输入,因为这只是直接从我的服务器运行的代码(通过Cron)
我已经花了几天的时间在网上寻找一些答案(已经得到了一点进一步),但我完全停留在这一点上...
任何建议都非常感谢!
2条答案
按热度按时间1zmg4dgp1#
看起来您在代码中删除的部分与OAuth过程的一部分有关,而这一部分是所需操作所必需的。
您可以尝试运行验证示例本身,并删除您已删除的代码部分,直到它不再工作。这将缩小导致问题的范围。我个人对OAuth不是很熟悉,但这看起来似乎是问题的一部分,因为您删除的主要部分之一是围绕OAuth过程交换OAuth密钥的验证器。
flvlnr442#
}
https://howtodofor.com/how-to-delete-tumblr-account/