**Ìܼ¡ [#u3865089]
#contents
** Twitter¤ÈYahoo¡¢³ÚÅ·¤ÎAPI¤ò»È¤¤¥Þ¥Ã¥·¥å¥¢¥Ã¥×¥µ¡¼¥Ó¥¹¤òºî¤ë [#b980b253]
|¥«¥Æ¥´¥ê¡¼|Tiwitter¤ÈYahoo¡¢³ÚÅ·¤ÎAPI¤ò»È¤¤¥Þ¥Ã¥·¥å¥¢¥Ã¥×¥µ¡¼¥Ó¥¹¤òºî¤ë|
|Í¥Àè½ç°Ì|»êµÞ|
|¥¤¥Æ¥ì¡¼¥·¥ç¥ó|[[¥¤¥Æ¥ì¡¼¥·¥ç¥ó1]]|
|¾õÂÖ|´°Î»|
|´°Î»Í½ÄêÆü|2007/9/18|
|¹©¿ô||
|Âбþ¼Ô|À¶¸¶|
----
**Í×·ï [#o554c79d]
-1. ¥æ¡¼¥¶¡¼¤ÎºÇ¿·¥³¥á¥ó¥È¤ò¸¡ÃÎ(¤³¤ì¤Ïmeddler¤Ë¼ÂÁõºÑ¤ß)
-2. Yahoo¤Î·ÁÂÖÁDzòÀÏAPI¤Ç¡¢¥³¥á¥ó¥È¤ò·ÁÂÖÁǤËʬ²ò
http://www.itmedia.co.jp/news/articles/0706/18/news090.html
-3. ʸ¾Ï¤ÎÃ椫¤é̾»ì¤ò¤È¤Ã¤Æ¤¤Æ¡¢³ÚÅ·API¤Ç¸¡º÷¤·¤Æ°ú¤Ã¤«¤«¤Ã¤¿¾¦Éʤ«¤é¥é¥ó¥À¥à¤Ë1¤Ä¤òÁªÂò¤·¤½¤ÎURL¤òmeddlerÍÑ¥¢¥«¥¦¥ó¥È¤Ëȯ¸À¤µ¤»¤ë¡£
**¥á¥â [#m4f0c1ab]
Yahoo!ÆüËܸì·ÁÂÖÁDzòÀÏWeb¥µ¡¼¥Ó¥¹
http://developer.yahoo.co.jp/jlp/MAService/V1/parse.html
-API¤ò»ÈÍѤ¹¤ë¤Ë¤Ï¥¢¥×¥ê¥±¡¼¥·¥ç¥óID¤¬É¬Í×
http://api.search.yahoo.co.jp/webservices/register_application
-¥ê¥¯¥¨¥¹¥È¤Î¹½ÃÛ
http://developer.yahoo.co.jp/jlp/rest.html
-ÆþÎϥѥé¥á¡¼¥¿
--filter=9¤Ç̾»ì¤ò½¦¤¨¤ë
³ÚÅ·¾¦Éʸ¡º÷API
http://webservice.rakuten.co.jp/api/itemsearch/
-¥Ç¥Ù¥í¥Ã¥Ñ¡¼ID¤ÎÅÐÏ¿¤¬É¬Í×
https://grp02.id.rakuten.co.jp/rms/nid/registfwd
-ÆþÎϥѥé¥á¡¼¥¿¡Ê¥Ç¥Õ¥©¥ë¥È¤«¤éÊѹ¹¤·¤¿¤â¤Î¡Ë
--1¥Ú¡¼¥¸¤¢¤¿¤ê¤Î¼èÆÀ·ï¿ô hits=3
--¥½¡¼¥È¡§sort=¤Ç²Á³Ê½ç¤ä¹¹¿·Æü½ç¤ËʤÓÂؤ¨¤ò»ØÄê½ÐÍè¤ë
º£²ó¤Ï¡Ö¥é¥ó¥À¥à¤Ë1¤Ä¤òÁªÂò¡×¤È¸À¤¦¤³¤È¤Ç¤³¤³¤Ç¥é¥ó¥À¥àÁªÂò¤Ë¤·¤¿
sort=random¡§¥é¥ó¥À¥à½ç¡¡
--¸¡º÷¥Õ¥£¡¼¥ë¥É field=0 ¡Ê0¡§¸¡º÷Âоݤ¬¹¤¤¡ÊƱ¤¸¸¡º÷¥¡¼¥ï¡¼¥É¤Ç¤â¿¤¯¤Î¸¡º÷·ë²Ì¤¬ÆÀ¤é¤ì¤ë¡Ë¡Ë
¾¤Ë¤âorFlag¤Çor¸¡º÷¤â½ÐÍè¤ë¤è¤¦¤Ë¤Ê¤ë
**¥×¥í¥°¥é¥à [#f722906c]
-meddler2.php
<?php
set_include_path(get_include_path() . PATH_SEPARATOR . './lib/');
require_once "Meddler.php";
$meddler = new Meddler();
$result = $meddler->meddler2('kiyohara_training','29d603e9db7f9b9480aed88a8ab218b5');
if(PEAR::isError($result)){
echo ($result->getMessage());
}
?>
-Meddler.php(ÄɲÃʬ)
//¥ê¥¯¥¨¥¹¥ÈURL¤òÌ㤤¥ê¥¯¥¨¥¹¥È¤òÁ÷¿®¤·¡¢Ê֤äƤ¤¿¥ì¥¹¥Ý¥ó¥¹¤òÊÖ¤¹
function getResponse($url){
$req = new Http_Request($url);
if (!PEAR::isError($req->sendRequest())){
$result = $req->getResponsebody();
return $result;
}else{
die('request failed');
}
}
//³ÆAPI¤«¤é¤Î·ë²ÌXML¤ò¼õ¤±¼è¤êÍ×ÁǤò¼è¤ê½Ð¤·¡¢ÇÛÎó¤ÇÊÖ¤¹
function getXmlAttribute($xml,$parse){
$parse->setInputString($xml);
$res = $parse->parse();
if(PEAR::isError($res)){
dir('Parsing failed'.$res->getMassage());
}
return $parse->getResultArray();
}
//¥¡¼¥ï¡¼¥É¤ò½ÅÊ£¤µ¤»¤º¤Ë¥é¥ó¥À¥à¤Ë$k¸ÄÃê½Ð¤¹¤ë¡£
//¥Ñ¥é¥á¡¼¥¿ array,int
function selectKeywordRandom($data,$k=1){
$count = count($data);
$use = array();
if($count < $k){
foreach($data as $s){
$keywords = $keywords.$s.' ';
}
}else{
for($i = 0; $i < $k; $i++){
$value[$i] = mt_rand()%$count;
$use = array_unique($value);
$i = (count($use)-1);
}
for($j = 0; $j < $k; $j++){
$keywords = $keywords.$data[$value[$j]].' ';
}
}
return $keywords;
}
//ͧã¤ÎÍߤ¬¤Ã¤Æ¤¤¤½¤¦¤Êʪ¤ò³ÚÅ·¾¦Éʸ¡º÷¤¹¤ë
function meddler2($yappid='',$rappid=''){
$yhoo = 'http://api.jlp.yahoo.co.jp/MAService/V1/parse?appid='.$yappid.'&results=ma&filter=9&sentence=';
$raku = 'http://api.rakuten.co.jp/rws/1.7/rest?developerId='.$rappid.'&operation=ItemSearch&version=2007-04-11&hits=1&sort=random&field=1&orFlag=0&keyword=';
$timeline = $this->getFriendsTimeline();
$enc_key = urlencode($timeline[0]['text']); //Tiwwiter¤«¤é¼èÆÀ¤·¤¿¥³¥á¥ó¥È¤òYahooAPI¤Ç»È¤¨¤ë¤è¤¦URL¥¨¥ó¥³
$yhoo = $yhoo.$enc_key; //YahooAPI¥ê¥¯¥¨¥¹¥ÈURL
$rslt_xml = $this->getResponse($yhoo); //YahooAPI¤Ë¥ê¥¯¥¨¥¹¥È¤··ë²Ì¤ò¼èÆÀ
$nouns = $this->getXmlAttribute($rslt_xml,new YahooApiParser()); //¼èÆÀ¤·¤¿XML¤«¤é̾»ì¤Î¤ß¤òÇÛÎó·Á¼°¤Ç¼è¤ê½Ð¤¹
$enc_key = urlencode($this->selectKeywordRandom($nouns['SURFACE'],1)); //¸¡º÷¤Ë»È¤¦¸ì¶ç¤òÂè2°ú¿ô¸ÄʬÃê½Ð¥é¥ó¥À¥à¤Ë¤¹¤ë
echo '½¦¤Ã¤¿¥¡¼¥ï¡¼¥É¡§'.urldecode($enc_key);
$raku = $raku.$enc_key;
$rslt_xml = $this->getResponse($raku);
$serch_rslt = $this->getXmlAttribute($rslt_xml,new RakutenApiParser());
$message = '¥ª¥¹¥¹¥á¾¦ÉÊ:'.$serch_rslt['ITEMNAME'].'²Á³Ê:'.$serch_rslt['ITEMPRICE'].'±ß'.'URL:'.$serch_rslt['ITEMURL'];
return $this->advise($message);
}
function advise($message){
$result = $this->_twitter->setUpdate("@{$userName}".$message);
$result= $this->_twitterErrorCheck($friends,'Twitter¤Ëȯ¸À¤Ç¤¤Þ¤»¤ó¤Ç¤·¤¿');
if(PEAR::isError($result)){
return $result;
}
}
-RakutenApiParser.php
<?php
require_once '../PEAR/Parser.php';
class RakutenApiParser extends XML_Parser
{
var $word = array();
var $currentTag;
function RakutenApiParser()
{
parent::XML_Parser();
}
function startHandler($parser,$name,$attribs){
switch($name){
case 'ITEMNAME':
$this->currentTag = $name;
break;
case 'ITEMPRICE':
$this->currentTag = $name;
break;
case 'ITEMURL':
$this->currentTag = $name;
break;
default:
break;
}
}
function endHandler($parser,$name){
$this->currentTag = null;
}
function cdataHandler($xp, $cdata)
{
$cdata = trim($cdata);
if(empty($cdata)){
return true;
}
if (($this->currentTag == 'ITEMNAME') || ($this->currentTag == 'ITEMPRICE') || ($this->currentTag == 'ITEMURL')){
$this->word[$this->currentTag] = $cdata;
}
}
function getResultArray(){
return $this->word;
}
}
?>