**Ìܼ¡ [#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;
     }
 }
 ?>


¥È¥Ã¥×   ¿·µ¬ °ìÍ÷ ñ¸ì¸¡º÷ ºÇ½ª¹¹¿·   ¥Ø¥ë¥×   ºÇ½ª¹¹¿·¤ÎRSS

¥¢¡¼¥¯¥¦¥§¥Ö¤Î¥µ¡¼¥Ó¥¹¤ä¥½¥ê¥å¡¼¥·¥ç¥ó¤Ï¤³¤Á¤é