【问题标题】:PHP- Save Access Tokens for Tumblr APIPHP- 保存 Tumblr API 的访问令牌
【发布时间】:2012-09-19 12:33:58
【问题描述】:

所以我整晚都在努力解决这个问题(字面意思)。但我难住了。我想做的只是保存访问令牌以供将来使用,并允许用户不必每次都“允许”该应用程序。当我使用存储和检索的“done.php”中的访问令牌时,“GET”操作有效,但“POST”无效。

addblogs.php(此脚本在注册后立即运行,捕获访问令牌并存储它们......现在它没有加盐,但它会加盐)

include('functions.php');
require_once('tumblroauth/tumblroauth.php');
require_once('config.php');
session_start();
sec_session_start();
$tumblrblog = $_SESSION['tumblrblog'];

$connection = new TumblrOAuth(CONSUMER_KEY, CONSUMER_SECRET, $_SESSION['oauth_token'], $_SESSION['oauth_token_secret']);

$access_token = $connection->getAccessToken($_REQUEST['oauth_verifier']);

unset($_SESSION['oauth_token']);
unset($_SESSION['oauth_token_secret']);

if (200 == $connection->http_code) {
$at = implode(",",$access_token);

$insert_stmt = $mysqli->prepare("INSERT INTO tumblogs (tumblrblog, access_token) VALUES ( ?, ?)");
   $insert_stmt->bind_param('ss', $tumblrblog, $at); 
   $insert_stmt->execute();
print_r ($access_token);

} else {
  header('Location: ./clearsessions.php');
}

done.php(检索并使用保存的访问令牌)

include('functions.php');
session_start();
sec_session_start();
require_once('tumblroauth/tumblroauth.php');
require_once('config.php');
$tumblrblog = $_SESSION['tumblrblog'];

$stmt = $mysqli->prepare('SELECT access_token FROM `tumblogs` WHERE tumblrblog=? LIMIT 1');
$stmt->bind_param("s", $tumblrblog);
$stmt->execute();
$stmt->bind_result($at);
$stmt->fetch();

$access_token = explode(",", $at);

$connection = new TumblrOAuth(CONSUMER_KEY, CONSUMER_SECRET, $access_token['0'], $access_token['1']);

print_r($access_token['0']);

$hostname = "$tumblrblog.tumblr.com";
$connection = new TumblrOAuth(CONSUMER_KEY, CONSUMER_SECRET, $access_token['0'], $access_token['1']);
$userinfo = $connection->get('http://api.tumblr.com/v2/user/info');
print_r($userinfo);
$pic_path = "dir/$tumblrblog/good/icon.png";
$pic = file_get_contents($pic_path);
$connection->post('api.tumblr.com/v2/blog/$hostname/post', array('type' => 'text', 'body' => 'this is a test of Tumbloadr v2'));

感谢大家观看!

布兰登

【问题讨论】:

    标签: php api tumblr access-token


    【解决方案1】:

    在 done.php 中,我还将通过打印 $access_token[1] 来验证您是否也在检索正确的访问令牌密码。另外,我会删除其中一个 $connections,无需重复两次。为了更具动态性,您可以使用此方法获取 $hostname $hostname = parse_url($blog->url,PHP_URL_HOST); 这显然不是一个解决方案,但希望它会有所帮助。

    【讨论】:

      【解决方案2】:

      为什么不在插入数据库之前序列化 accessToken?我认为这将是在数据库中存储令牌的正确方法。您永远无法知道令牌是否包含“,”字符,那么您的爆炸会破坏整个访问令牌。

      当我为 Dropbox 存储令牌时,我必须在使用它时进行序列化和反序列化。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2013-07-31
        • 2018-06-08
        • 2014-10-17
        • 1970-01-01
        • 2011-06-08
        • 2016-07-20
        • 2012-01-18
        相关资源
        最近更新 更多