我正在制作一个简单的电子邮件导入程序脚本。从这个网站上的帖子中可以看出,那些待售的产品要么狡猾,要么不值得花钱,而且我知道PHP和JS我认为这不会很难,毕竟我使用过Twitter API和Facebook API。
然而,我似乎在路上碰到了一点点。
你看我正在使用雅虎自己的脚本Yahoo.inc - http://developer.yahoo.com/social/sdk/php/
一切顺利。然而,当我试图获得联系时,我似乎无法做到。现在我已经在我的应用程序的API设置中,请求联系人的阅读请求,所以我知道这不是那个问题。
这是我正在使用的代码
$contacts = $user->getContacts();
然而,这似乎不起作用,就像我错过了一些东西。从Yahoo提供的getContacts函数获取电子邮件的正确方法是什么?
答案 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。