スポンサーサイト

上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。
[ --/--/-- --:-- ] スポンサー広告 | TB(-) | CM(-)

oauth.phpの使い方とか

最近twitterアプリをPHPで作るのがマイブームなんですが、その中で一番問題になるのがOAuth認証かと思います。

なんですがそのOAuth認証はoauth.phpとtwitteroauth.phpの2つを使えば簡単にできてしまうわけです。

ということでもう既に他で説明されているんですがちょこっと初心者の人のために説明したいと思います。

今回はtwitterへ投稿するまでを説明します。

TLの表示などは要望があるかコメントがあればやります・・・。

必要なファイル
・twitteroauth.php
・oauth.php
・プログラムを実行するphpファイル(ここではindex.phpとして説明していきます。)


PHPの基本知識(PHPの文法など)くらいはある前提で話をしていくので初心者の人には向かないと思います。




1、twitteroath.phpをコールする。

最初にindex.phpに

require_once("twitteroauth.php");

を記述してtwitteroauth.phpを呼び出します。

require("twitteroauth.php");

でもいいのですが

require_once("twitteroauth.php");

は既に読み込まれていた場合読み込まない便利な命令なのでrequire_onceを使用するようにすれば間違えて2重に読み込むことを防げます。

あ、もちろんPHPの命令なので
<?php ?>の間に書いてください。

twitteroauth.phpとoauth.phpは同じディレクトリにアップロードしてください。

twitteroauth.phpを同じディレクトリにアップロードした場合はこのままでいいですが、他のフォルダの中に入れた場合はoauth/twitteroauth.phpなどにしてください。

何でhttp://www.example.com/oauth/twitteroauth.phpみたいに指定しないの?と思う人はカレントディレクトリでggってみるといいです。



2、twitteroauth.phpに渡すための必要なオブジェクトを生成する。

twitteroauth.phpをコールしただけじゃ何もできないことはわかると思います。

twitteroauth.phpにoauth認証のkeyを渡してあげなければいけません。

そのために数値を入れておくオブジェクトを生成します。

オブジェクトというのは簡単に言えば変数の集まりです。

ここらへんを詳しく書くと時間がかかってしまうので説明は省略します。

詳しく知りたいひとはクラスとオブジェクトについてggってみてください。

以下の文をindex.phpに記述してください。
$consumer_key = "取得したConsumerKey";
$consumer_secret = "取得したConsumerSecret";
$access_token = "取得したAccessToken";
$access_token_secret = "取得したAccessTokenSecret";

$obj = new TwitterOAuth($consumer_key, $consumer_secret, $access_token, $access_token_secret);


この文ではTwitterOAuthというクラスを利用して$objというオブジェクトを生成しています。

$objというオブジェクトの中に4つあったOAuthKeyが入れられたということです。

$objをprint_r();を使って中身を見てみるとこんな感じになってます。

TwitterOAuth Object
(
[http_code] =>
  [url] =>
  [host] => https://api.twitter.com/1/
  [timeout] => 30
  [connecttimeout] => 30
  [ssl_verifypeer] =>
  [format] => json
  [decode_json] => 1
  [http_info] =>
  [useragent] => TwitterOAuth v0.2.0-beta2
  [sha1_method] => OAuthSignatureMethod_HMAC_SHA1 Object
    (
    )

  [consumer] => OAuthConsumer Object
    (
      [key] => 取得したconsumer_key
      [secret] => 取得したconsumer_secret
      [callback_url] =>
    )

  [token] => OAuthConsumer Object
    (
      [key] => 取得したAccessToken
      [secret] => 取得したAccessTokenSecret
      [callback_url] =>
    )

)


これでtwitteroauth.phpに渡す準備ができました。

ここではnewというオブジェクトを作成する命令を使用してTwitterOAuthというクラスを使い$objというオブジェクトを生成した、ということさえわかれば問題ないです。



3、生成したオブジェクトを使いTwitterにOAuthを使ってリクエストする。

オブジェクトを生成しただけではtwitterにリクエストすることはできません。

生成したオブジェクトを利用してtwitterのAPIをコールします。

コールする時は

$obj->OAuthRequest("リクエストURL","メゾット","リクエストパラメーター");


でリクエストします。

ここでは投稿することが目的なので投稿するための例文を示します。

まずリクエストURLはtwitterの投稿するためのAPIを指定します。

投稿用のAPIURLは

https://twitter.com/statuses/update.format


です。

formatの部分は返り値のフォーマットを指定することができます。

PHPではXMLが処理しやすいのでxmlを指定します。

xmlの他にはjsonやatomなどもあります。

次に投稿する時のメゾットを指定します。

POSTかGETかを指定できますが、投稿はPOSTなのでPOSTを指定します。

POSTメゾットとGETメゾットの違いなどについてはggってみてください。

最後にリクエストパラメーターを指定します。

ここではtwitter側で指定されたリクエストパラメーターを使用して、投稿する文やリプライ元ツイートのIDを指定したりすることができます。

つまりどういうことかというと、ここにリクエストするデータを追加していくということです。

ツイートを投稿する場合は

array("status"=>"ツイート内容")


だけでOKです。

リプライ元ツイートIDも指定する場合は

array("status"=>"@userid リプライ内容","in_reply_to_status_id"="リプライ元ツイートのID")


とします。

その他のパラメーターについてはtwitterのAPIwikiなどを見てください。

アップデートAPI詳細

まとめると以下のようになります。

普通にツイートする場合
$obj->OAuthRequest("https://twitter.com/statuses/update.xml","POST"," array("status"=>"ツイート内容");

リプライ元ツイートのIDを付加する場合
$obj->OAuthRequest("https://twitter.com/statuses/update.xml","POST"," array("status"=>"@userid リプライ内容"."in_reply_to_status_id"=>"リプライ元ツイートID);


これで投稿ができます。

投稿後の返り値が取得したいのならば

$response = $obj->OAuthRequest("https://twitter.com/statuses/update.xml","POST"," array("status"=>"ツイート内容");


としてやれば$responseに返り値が入ります。

$responseには投稿に成功したか失敗したかなどの情報も入っているのでちゃんとしたクライアントを作るときはここを見る必要があります。

$responseは指定したformat、つまりこの場合xmlを指定しているのでxml形式で$responseが返ってきます。



ここで、今回説明したプログラムの内容をまとめると以下のようになります。

//twitteroauth.phpをコール
require_once("twitteroauth.php");

//オブジェクトを生成
$consumer_key = "取得したConsumerKey";
$consumer_secret = "取得したConsumerSecret";
$access_token = "取得したAccessToken";
$access_token_secret = "取得したAccessTokenSecret";

$obj = new TwitterOAuth($consumer_key, $consumer_secret, $access_token, $access_token_secret);

//投稿
$obj->OAuthRequest("https://twitter.com/statuses/update.xml","POST"," array("status"=>"ツイート内容");


これで投稿だけできるPHPの完成です。

PHPをコールすればtwitter側に問題が無く規制されていない状態ならば投稿されるはずです。

コピペしてプログラムを動かすのもいいですが、できるだけ自分で書くようにしたほうがいいかとは思います。
[ 2011/03/08 03:41 ] 未分類 | TB(0) | CM(0)
コメントの投稿

コメントを投稿する際の注意点
・アフィリエイトコメントは即消去してアクセス規制させて頂きます。
・「@」を含む文は投稿できません。
@は☆や○、「あっと」などに置き換えてください。
・誹謗中傷コメントは消去、悪質な場合にはアクセス規制させて頂きます。
・質問する際には、まず自分である程度調べてから質問してください。













管理者にだけ表示を許可する
トラックバック
この記事のトラックバックURL

プロフィール

儚

Author:儚
PSPやDSのハードウエア改造関係の記事をちまちま書いています( ´∀`)ノ
誤字脱字は報告していただけるとウレシイです(^_^)

GNCT1年生。

最近ブログの更新が少ないですが生きてます。

所持物
PSP10002台,PSP20001台
DS DSi
ネットノートUL20A
自作PC(corei7860 GTS250)
iphone 3GS
ipod touch 2nd

所持マイコン
PIC各種 H8/3052 H8SX/1655
インタプリタ型所持マイコン
arduino 秋月PICBASIC

とりあえず書けるプログラム言語など
BASIC C C++.NET PHP HTML CSS javascript

やってみたい言語
java

twitterやってます。

よかったらフォローしてください。

ブログ内の記事を参考に行った改造について私は責任を負いません。
自己責任で行ってください。




ブラウザはFirefox3以上Opera10.0以上を推薦。
IE6以下はテンプレートが崩れる可能性があります。




スペシャルリンク
僕とPSPとPCの生活。

ユタスケブログ
のりんむらBLOG
相互リンクをしている中から激選してスペシャルリンクさせて頂きました。
最新コメント
メールフォーム
修理改造を希望される方はこちらのメールフォームより必要事項を記入した上で送信してください。

名前:
メール:
件名:
本文:

コメント・トラバ・総記事数
コメント数:  トラバ数:  総記事数:
管理人のやる気


上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。