PHPプログラムに関する各種メモ書き:タグ「Twitter」での検索

codeigniterでTwitterログインを実現する

● codeigniterでTwitter,Facebookログインを実現する

● Twitter,Facebook APIキーを発行する

こちらからAPIキーを発行します(追加方法は割愛します。) https://apps.twitter.com/

● Twiter Oauthモジュールのインストール

composerからインストールします。
CodeIgniterで利用する場合は application ディレクトリに移動してから次のコマンドを実行します。
ターミナルから以下を実行

composer require abraham/twitteroauth

PHPから以下のように読み込みます

require "vendor/autoload.php";
use Abraham\TwitterOAuth\TwitterOAuth;

または codeigniter の codeigniter/application/config/config.php の下記項目を TRUE にします。

$config['composer_autoload'] = TRUE;

● codeigniterのコントローラの作成

codeigniterの controllers に Oauth.php を以下のように作成します

public function twitter() {
    define('CONSUMER_KEY', 'XXXXXXXX');
    define('CONSUMER_SECRET', 'YYYYYYYY');
    define('OAUTH_CALLBACK', 'http://zzz.zzz.zzz/oauth/twitter_callback/');
    $connection = new TwitterOAuth(CONSUMER_KEY, CONSUMER_SECRET);
    $request_token = $connection->oauth('oauth/request_token', array('oauth_callback' => OAUTH_CALLBACK));
    $this->session->set_userdata('oauth_token', $request_token['oauth_token']);
    $this->session->set_userdata('oauth_token_secret', $request_token['oauth_token_secret']);
    $url = $connection->url('oauth/authenticate', array('oauth_token' => $request_token['oauth_token']));
    redirect($url);
}


public function twitter_callback() {
	$session = $this->session->userdata();
	$q = $this->input->get(null, true);
	$request_token = array();
	$request_token['oauth_token'] = $session['oauth_token'];
	$request_token['oauth_token_secret'] = $session['oauth_token_secret'];
	if (isset($_REQUEST['oauth_token']) && $request_token['oauth_token'] !== $_REQUEST['oauth_token']) {
		die('Error!');
	}
	$connection = new TwitterOAuth(CONSUMER_KEY, CONSUMER_SECRET, $request_token['oauth_token'], $request_token['oauth_token_secret']);
	$access_token = $connection->oauth("oauth/access_token", array("oauth_verifier" => $q['oauth_verifier']));
	$this->session->set_userdata('access_token', $access_token);
	session_regenerate_id();
	redirect('oauth/mypage');
}

● ログインの実行

http://zzz.zzz.zzz/oauth/twitter/ へアクセスします

No.1087
11/22 16:18

edit

CodeIgniter
Twitter

PHPからTwitter API 1.1 を使って Twitterに自動書き込みする。【tmhOAuth】

■ tmhOAuth

https://github.com/themattharris/tmhOAuth

↑ ここからダウンロードして tmhOAuth.php をサーバにアップします。

■ コーディング例(自分のアカウントに hoge hoge hoge とつぶやきます。)

require_once 'tmhOAuth.php';
$twitter = new tmhOAuth(
	array(
		'consumer_key'        => 'aaaaa' ,
		'consumer_secret'     => 'bbbbb' ,
		'token'               => 'ccccc' ,
		'secret'              => 'ddddd' ,
		'curl_ssl_verifypeer' => false ,
		'timezone'            => 'Asia/Tokyo' ,
	)
);
$r = $twitter->request('POST', $twitter->url('1.1/statuses/update'), array(
	'status' => 'hoge hoge hoge'
), true, false);
// 正常終了なら $r に 200 が返る。 
print '<pre>'; print_r($twitter); print '</pre>';

■ Twitter REST API v1.1 Resources (ツイッターAPIのリファレンス)

https://dev.twitter.com/docs/api/1.1


その他参考:

tmhOAuth を使って twitter に画像つきつぶやきを投稿するには

No.891
06/25 17:16

edit

API
Twitter

PHP(PEAR:HTTP_OAuth)でTwitter等各種サービスにOAuthログインをする。

PEARでTwitter等各種サービスにOAuthログインをする。(https SSL対応)

必要なPEARパッケージを下記からダウンロードする

面倒な方は

http://logic.moo.jp/memo.php?cmd=download&data_id=780&file=780_1.zip

をダウンロードして(lib)フォルダをそのままコピーしてください。

Twitterにアプリケーションを登録して「Consumer key」「Consumer secret」を取得する

https://twitter.com/apps

【新しいアプリケーションを追加】を押して、アプリ情報を入力して登録を完了させる。

登録完了後に表示される画面から

・Cunsumer Key
・Consumer secret
・Request token URL (フォローをリクエストしました)
・Access token URL
・Authorize URL

をメモしておく

後は下記コードにメモした情報をコピペすればOK($callback_url にはプログラムのURLをセットする。)

$path = './lib';
set_include_path(get_include_path() . PATH_SEPARATOR . $path);
include 'HTTP/OAuth/Consumer.php';
$consumer_key      = 'XXXXXXXXXX';
$consumer_secret   = 'XXXXXXXXXX';
$get_request_token = 'https://twitter.com/oauth/request_token';
$get_access_token  = 'https://twitter.com/oauth/access_token';
$get_authorize     = 'https://twitter.com/oauth/authorize';
// $get_authorize     = 'https://twitter.com/oauth/authenticate'; // 毎回出る
認証画面をskipしたい時
$callback_url      = 'XXXXXXXXXX';
$oauth = new HTTP_OAuth_Consumer($consumer_key, $consumer_secret);
// ssl証明書
$http_request = new HTTP_Request2();
$http_request->setConfig('ssl_verify_peer', false);
$oauth_request = new HTTP_OAuth_Consumer_Request;
$oauth_request->accept($http_request);
$oauth->accept($oauth_request);
$oauth_flag = false;
session_start();
if (empty($_SESSION['oauth_access_token']) && empty($_GET['oauth_verifier'])) {
	// 1. 初回呼び出し時
	$oauth->getRequestToken($get_request_token, $callback_url);
	$_SESSION['oauth_request_token'] = $oauth->getToken();
	$_SESSION['oauth_request_token_secret'] = $oauth->getTokenSecret();
	$_SESSION['oauth_state'] = "start";
	$auth_url = $oauth->getAuthorizeURL($get_authorize);
	// header("Location: $auth_url");					// A. リダイレクト
	print('<a href="'.$auth_url.'">'.$auth_url.'</a>');	// B. リンク表示
}
elseif( isset($_GET['oauth_verifier']) ){
	// 2. サービスから帰ってきたとき
	$oauth->setToken($_SESSION['oauth_request_token']);
	$oauth->setTokenSecret($_SESSION['oauth_request_token_secret']);
	$oauth->getAccessToken($get_access_token, $_GET['oauth_verifier']);
	$_SESSION['oauth_access_token'] = $oauth->getToken();
	$_SESSION['oauth_access_token_secret'] = $oauth->getTokenSecret();
	$oauth_flag = true;
}
else{
	// 3. 認証後にアクセスしたとき
	$oauth_flag = true;
}
if ( $oauth_flag ){
	// ここにやりたい事を記述
	print '<h1>OAUTH OK !</h1>';
}

サンプルコードを実行する

サンプルコードは以下のリンクからダウンロードして下さい。

添付ファイル1
No.780
04/08 18:28

edit

添付ファイル

Twitter
PEAR