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

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

ブログ更新Ping(XML RPC)受信サーバをPHPで作る

ブログ更新Ping(XML RPC)受信サーバをPHPで作る。

1. 更新Pingの受信

まずブログシステムで更新した時に飛んでくるPingを受けるには以下のようにします。

$xml = mb_convert_encoding(file_get_contents("php://input"), "UTF-8", "auto");
if (!$xml) {
	return false;
}
else{
	$data_obj = new SimpleXMLElement($xml);
	$data = (ARRAY)$data_obj;
	// ここに受信したデータの処理を記述
	・・・・・・・・・・
}

2.成功or失敗コードの出力

処理後に成功または失敗コードを返してやります。

下記コードをテンプレートとして持っておいて header ('Content-Type: text/xml'); の後に送信するのがカスタマイズも楽でいいでしょう。

成功時の戻り値の例

<?xml version="1.0" encoding="UTF-8"?>
<methodResponse>
<params>
 <param>
  <value>
   <struct>
    <member>
     <name>flerror</name>
     <value>
      <boolean>0</boolean>
     </value>
    </member>
    <member>
     <name>message</name>
     <value>
      <string>OK</string>
     </value>
    </member>
   </struct>
  </value>
 </param>
</params>
</methodResponse>

失敗時の戻り値の例

<?xml version="1.0" encoding="UTF-8"?>
<methodResponse>
 <params>
  <param>
   <value>
    <struct>
     <member>
      <name>flerror</name>
      <value>
       <boolean>1</boolean>
      </value>
     </member>
     <member>
      <name>message</name>
      <value>
       <string>Unable to process</string>
      </value>
     </member>
    </struct>
   </value>
  </param>
 </params>
</methodResponse>
No.880
03/18 17:35

edit

XML
API

Googleサジェスト(Yahoo, Bing, Amazon, Youtubeも)APIを使用する

Googleサジェストや他の検索エンジンやアマゾンのサジェストをPHPで使用するには下記のように記述します。

($url = ''; の定義を複数行記述していますので、使用したいAPI以外の行をコメントアウトしてください。)

$text   = 'ジャズ';
// Google
$url = 'http://suggestqueries.google.com/complete/search?hl=ja&qu='.urlencode($text);
// Youtube
$url = 'http://clients1.google.com/complete/search?hl=en&ds=yt&client=firefox&q='.urlencode($text);
// Amazon
$url = 'http://completion.amazon.co.jp/search/complete?method=completion&search-alias=aps&mkt=6&q='.urlencode($text);
// Yahoo
$url = 'http://asprov.search.yahoo.co.jp/AssistSearchService/V2/webassistSearch?output=iejson&callback=ytopAssist&p='.urlencode($text);
// Bing
$url = 'http://api.bing.net/osjson.aspx?FORM=OPERAS&Market=ja&Query='.urlencode($text);
$json = file_get_contents($url);
$json = mb_convert_encoding($json, 'UTF8');
$data = json_decode($json,true);
print "<pre>";
print_r($data);
print "</pre>";

Bingでの使用例(「ジャズ」という単語でサジェストした結果)

Array
(
    [0] => ジャズ
    [1] => Array
        (
            [0] => ジャズドリーム
            [1] => ジャズドリーム長島
            [2] => ジャズダンス
            [3] => ジャズドリーム長島 クーポン
            [4] => ジャズピアノ
            [5] => ジャズドリーム長島 セール
            [6] => ジャズ 名曲
            [7] => ジャズマスター
        )
)

となります。

No.792
04/26 10:52

edit

API

Googleの短縮URLサービスAPI goo.gl をPHPから使用する

Googleの短縮URLサービス goo.gl をPHPから使用するには以下のようなコードで実現できます。

1. APIキー( api_key )を取得する

https://code.google.com/apis/console/

ここから取得できます

2. 以下のPHPコードで実現できます( $api_key に取得したキーをセットすること )

function get_tiny_url($long_url=''){
	$api_url = 'https://www.googleapis.com/urlshortener/v1/url';
	$api_key = 'XXXXXXXXXXX';
	$curl = curl_init("$api_url?key=$api_key");
	curl_setopt($curl, CURLOPT_HTTPHEADER, array('Content-type: application/json'));
	curl_setopt($curl, CURLOPT_POST, 1);
	curl_setopt($curl, CURLOPT_POSTFIELDS, '{"longUrl":"' . $long_url . '"}');
	curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);
	$res = curl_exec($curl);
	curl_close($curl);
	$json = json_decode($res);
	$tiny_url = $json->id;
	return $tiny_url;
}

使い方

$long_url = 'http://xxxx.xxxx.xxx.com/xxxxxxxxxxxxxx.html';
$tiny_url = get_tiny_url($long_url);

No.781
04/04 17:46

edit

API
URL

はてなダイアリーキーワード自動リンクAPIをPHPで使用する。

はてなダイアリーキーワード自動リンクAPI

http://developer.hatena.ne.jp/ja/documents/keyword/apis/autolink

パラメーター

uri : http://d.hatena.ne.jp/xmlrpc
encoding : utf8
methodName : hatena.setKeywordLink
parameters : 以下を参照
body(string): キーワードを抽出するテキストを指定します。
score(int): 0〜50。キーワードスコアのしきい値を指定します。指定された値よりもスコアが大きいキーワードのみが抽出されます。省略可。
cname(array): キーワードのカテゴリーを指定します。指定があった場合、「一般」と指定されたカテゴリーのキーワードが抽出されます。指定が無かった場合は、全カテゴリーとなります。book,music,movie,web,elec,animal,anime,food,sports,game,comic,hatena,clubが指定可能です。省略可。
a_target(string): アンカー(a)タグのtarget属性値を指定します。省略可。例:_blank
a_class(string): アンカー(a)タグのclass属性値を指定します。省略可。例:keyword
mode(string): 値として lite を指定すると、キーワード自動リンクの結果ではなく、自動リンクに使われるキーワード一覧が返却されます。省略可

PHPソース例

require_once 'XML/RPC.php'; 
$text = "日本語の文化と日本語のテスト";
$out_text = hatena_keyword_link($text);
print_r($out_text);
function hatena_keyword_link( $body ){
	$body = mb_convert_encoding( $body,'utf8',mb_internal_encoding() );
    $params = new XML_RPC_Value(array(
        "body"     => new XML_RPC_Value( $body , "string" ),
        "score"    => new XML_RPC_Value( 0 , "int" ),
        "a_target" => new XML_RPC_Value( '_blank', "string"),
        "a_class"  => new XML_RPC_Value( 'keyword', "string")
        ), "struct");
    $msg = new XML_RPC_Message("hatena.setKeywordLink", array($params));
	$client = new XML_RPC_Client( "/xmlrpc" , "d.hatena.ne.jp", 80 );
    $response = $client->send($msg);
    if (!$response->faultCode()) {
			$val = $response->value();
			$data = XML_RPC_decode($val);
			return $data;
	}
	else {
		return PEAR::raiseError( $response->faultCode(), $response->faultString() );
	}
}

実行結果

<a class="keyword" target="_blank" href="http://d.hatena.ne.jp/keyword/%C6%FC%CB%DC%B8%EC">日本語</a>の<a class="keyword" target="_blank" href="http://d.hatena.ne.jp/keyword/%CA%B8%B2%BD">文化</a>と<a class="keyword" target="_blank" href="http://d.hatena.ne.jp/keyword/%C6%FC%CB%DC%B8%EC">日本語</a>の<a class="keyword" target="_blank" href="http://d.hatena.ne.jp/keyword/%A5%C6%A5%B9%A5%C8">テスト</a> 
No.721
05/02 15:07

edit

API
PEAR

Youtube API を使って自分のサイトでYouYube検索を行う

文字列「Michael Jackson」で10件検索

http://gdata.youtube.com/feeds/api/videos?vq=michael+Jackson&max-results=10

ビデオID「MYx3BR2aJA4」の情報を取得する

http://gdata.youtube.com/feeds/api/videos/MYx3BR2aJA4

ビデオID「MYx3BR2aJA4」の関連動画を取得する

http://gdata.youtube.com/feeds/api/videos/MYx3BR2aJA4/related

その他検索方法

http://gdata.youtube.com/feeds/projection/standardfeeds/FEED_ID

FEED_IDに指定できる文字列

feedid	説明
top_rated	評価の高い動画
top_favorites	お気に入り登録の多い動画
most_viewed	再生回数が多い動画
most_discussed	最も議論された動画
most_linked	リンクの多い動画
most_responded	動画レスポンスの多い動画
recently_featured	最近のおすすめ動画
watch_on_mobile	携帯電話のための動画

ユーザ「USER_NAME」のお気に入りに登録されているビデオを取得

http://gdata.youtube.com/feeds/api/users/USER_NAME/favorites

再生リスト「PLAYLIST_ID」のビデオを取得

http://gdata.youtube.com/feeds/projection/playlists/PLAYLIST_ID

ユーザ「USER_NAME」のプロファイルを取得

http://gdata.youtube.com/feeds/projection/users/「USER_NAME」

ユーザ「USER_NAME」が登録している再生リストを取得

http://gdata.youtube.com/feeds/projection/users/USER_NAME/playlists

ユーザ「USER_NAME」の登録チャンネルを取得

http://gdata.youtube.com/feeds/projection/users/USER_NAME/subscriptions

ユーザ「USER_NAME」のユーザコンタクトリストに登録されているユーザを取得

http://gdata.youtube.com/feeds/projection/users/username/contacts

JSOC-Cフォーマット(簡略版JSON)でデータを取得する

後ろに
?v=2&alt=jsonc
を追加する

http://gihyo.jp/dev/feature/01/jquery-ajax/0003

No.706
10/03 19:04

edit

API

WEBサービスAPIを利用するときに便利なPEARクラス

Yahoo!やGoogle, Amazon, Twitter, はてな 等の各種WEBサービスAPIを利用するときに便利なPEARパッケージ。

http://pear.php.net/packages.php?catpid=23&catname=Web%20Services


No.428
04/07 13:46

edit

API
PEAR