Yahoo Contact API

时间:2011-11-18 00:29:22

标签: php javascript yahoo

我正在制作一个简单的电子邮件导入程序脚本。从这个网站上的帖子中可以看出,那些待售的产品要么狡猾,要么不值得花钱,而且我知道PHP和JS我认为这不会很难,毕竟我使用过Twitter API和Facebook API。

然而,我似乎在路上碰到了一点点。

你看我正在使用雅虎自己的脚本Yahoo.inc - http://developer.yahoo.com/social/sdk/php/

一切顺利。然而,当我试图获得联系时,我似乎无法做到。现在我已经在我的应用程序的API设置中,请求联系人的阅读请求,所以我知道这不是那个问题。

这是我正在使用的代码

$contacts = $user->getContacts();

然而,这似乎不起作用,就像我错过了一些东西。从Yahoo提供的getContacts函数获取电子邮件的正确方法是什么?

3 个答案:

答案 0 :(得分:4)

而不是getContacts(),您可以使用yql查询:

$session = YahooSession::requireSession(OAUTH_CONSUMER_KEY, OAUTH_CONSUMER_SECRET, OAUTH_APP_ID);   
$query = sprintf("select * from social.contacts where guid=me;");  
$response = $session->query($query); 


/**** printing the contact emails starts ****/
if(isset($response)){

   foreach($response->query->results->contact as $id){

       foreach($id->fields as $subid){

               if( $subid->type == 'email' )
               echo $subid->value."<br />";
       }
   }
}
/**** printing the contact emails ends ****/

答案 1 :(得分:1)

查看github,您可以看到yahoo-yos-php包已弃用。它将被yahoo-yos-php5包替换。也许您应该下载并尝试使用它。

BTW,yahoo-yos-php使用YOS API调用(doc)来获取数据,而yahoo-yos-php5使用YQL查询。 因此,使用新软件包的最终结果与仅在yahoo发行版中打包的@mithunsatheesh解决方案相同。

这是类的link和函数本身:

public function getContacts($guid = null, $offset = 0, $limit = 10)
{
  if($guid == null && !is_null($this->token))
  {
    $guid = $this->token->yahoo_guid;
  }

  $rsp = $this->yql(sprintf('SELECT * FROM social.contacts(%s,%s) WHERE guid="%s"', $offset, $limit, $guid));

  return isset($rsp->query->results) ? $rsp->query->results : false;
}

答案 2 :(得分:0)

从yahoo api文件(即Yahoo.inc)中搜索此方法getContacts(),并将限制增加到500.最初它将是10。