tmhOauthを使って認証ができません

226 views
Skip to first unread message

谷川滉樹

unread,
Nov 29, 2013, 4:12:47 AM11/29/13
to twitter-devel...@googlegroups.com
すいません、初心者です。
tmhOauthのver0.4を使って、twitterAPIポケットリファレンスのサンプルコードを使って認証しようと試みました。
ですが、twitterにリダイレクトしたところで、リクエストトークンがないというエラーで弾かれます。
何処が悪いのか教えていただけないでしょうか。よろしくお願いします。
ソースは以下の通りです。




<?php
//tmhOAuthを初期化
require "./tmhOAuth.php";
$twitter = new tmhOAuth(
// 実際に取得したコンシューマキーを記述
array("consumer_key" => "***",
"consumer_secret" =("***"));

$here = $twitter->php_self();
//session fixation攻撃対策
session_start();
if(!isset($_SESSION["initiated"])){
session_regenerate_id();
$_SESSION["initiated"] = true;
}

if(isset($_REQUEST["command"])) switch($_REQUEST["command"]){
case "authorize":
//OAuth認可、まずリクエストトークンを取得
$twitter->request("POST", $twitter->url("oauth/request_token", "")
, array("oauth_callback" => $here . "?command=callback"));
//リクエストトークンはコールバックを受けてアクセストークンする際に必要なのでセッションに格納
$_SESSION["request_token"] = $twitter->extract_params($twitter->response["response"]);
//Twitterの認可画面へリダイレクト
header("Location: " . $twitter->url("oauth/authorize", "") . "?oauth_token={$_SESSION["request_token"]["oauth_token"]}");
break;

case "callback":
// Twitterからコールバックを受け取った
$twitter->config["user_token"] = $_SESSION["request_token"]["oauth_token"];
$twitter->config["user_secret"] = $_SESSION["request_token"]["oauth_token_secret"];
//アクセストークンを取得してセッションに格納
$twitter->request("POST", $twitter->url("oauth/access_token", ""));
$_SESSION["access_token"] = $twitter->extract_params($twitter->response["response"]);
//リクエストトークンは不要(無効)になったので破棄
unset($_SESSION["request_token"]);
break;

case "tweet":
// ツイートする
$twitter->config["user_token"] = $_SESSION["access_token"]["oauth_token"];
$twitter->config["user_secret"] = $_SESSION["access_token"]["oauth_token_secret"];
$twitter->request("POST", $twitter->url("1/statuses/update"), array("status" => $_POST["tweet"]));
print "ツイートしました:" . htmlspecialchars($_POST["tweet"]);
break;

case "logout":
//セッションに格納されているアクセストークンを破棄してログアウト
session_unset();
break;
}
?><!DOCTYPE html>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
</head>
<body>
<?php
if (isset($_SESSION["access_token"])) {
//アクセストークンがセッションに存在するのでOAuth認可済
?>
<form action="oauth_authorize.php" method="POST">
いまどうしてる? <input type="text" name="tweet" size="50"/><br>
<input type="hidden" name="command" value="tweet"/>
<input type="submit" value="ツイート"/>
</form>
<a href="?command=logout">ログアウト</a>
<?php
} else {
?>
<a href="?command=authorize">OAuth認可する</a>
<?php
}?>
</body>
</html>

Yamamoto Yusuke

unread,
Nov 29, 2013, 4:15:21 AM11/29/13
to twitter-development-talk-ja@googlegroups.com twitter-development-talk-ja@googlegroups.com
エラー画面をURLバーを含めてスクリーンショットを撮っていただけますでしょうか?
--
山本 裕介
@yusuke
http://samuraism.jp/
> --
> このメールは Google グループのグループ「Twitter Development Talk - ja」の登録者に送られています。
> このグループから退会し、メールの受信を停止するには、twitter-development...@googlegroups.com にメールを送信します。
> その他のオプションについては、https://groups.google.com/groups/opt_out にアクセスしてください。

谷川滉樹

unread,
Nov 29, 2013, 4:31:25 AM11/29/13
to twitter-devel...@googlegroups.com
添付しておきました。
今手元にiPodしかなかったのですが、パソコンでも全くもって同じ内容、URLです。
そして、URLがスクリーンショットからはみ出していますが、
よろしくお願いします。
2013年11月29日金曜日 18時15分21秒 UTC+9 山本 裕介:
> このグループから退会し、メールの受信を停止するには、twitter-development-talk-ja+unsub...@googlegroups.com にメールを送信します。
> その他のオプションについては、https://groups.google.com/groups/opt_out にアクセスしてください。

CA09E6E3-6A5E-4230-98EA-10C16A436A9F.PNG
Reply all
Reply to author
Forward
0 new messages