API контактов Yahoo - PullRequest
       2

API контактов Yahoo

3 голосов
/ 18 ноября 2011

Я работаю над простым сценарием импорта электронной почты. Судя по сообщениям на этом сайте, те, которые продаются, либо хитроумны, либо не стоят потраченных денег, и, как я знаю PHP и JS, я подумал, что это не сложно, ведь я работал с Twitter API и Facebook API.

Однако я, кажется, столкнулся с небольшим ухабом на дороге.

Вы видите, что я использую собственный скрипт Yahoo Yahoo.inc - http://developer.yahoo.com/social/sdk/php/

И все идет как можно лучше. Однако, когда я пытаюсь получить контакты, я, кажется, не могу. Теперь у меня есть настройки API для моего приложения, запросить запрос на чтение контактов, чтобы я знал, что это не та проблема.

Вот мой код, которым я пользуюсь

$contacts = $user->getContacts();

Однако, похоже, это не работа, похоже, что я что-то упустил. Как правильно получать электронные письма от функции getContacts, которую предлагает Yahoo?

Ответы [ 3 ]

4 голосов
/ 01 декабря 2011

вместо 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 голос
/ 07 декабря 2011

Глядя на github, вы видите, что пакет yahoo-yos-php устарел.он будет заменен пакетом yahoo-yos-php5 .Возможно, вам следует скачать его и попробовать использовать его вместо этого.

Кстати, yahoo-yos-php использует вызов API YOS ( doc ) для извлечения данных, в то время как yahoo-yos-php5 использует YQLзапросы.Таким образом, конечный результат использования нового пакета такой же, как у решения @mithunsatheesh, упакованного только в дистрибутив Yahoo.

Вот ссылка на класс и сама функция:

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;
}
0 голосов
/ 13 апреля 2012

Найдите этот метод getContacts() из файла API Yahoo (например, Yahoo.inc) и увеличьте лимит до 500. Первоначально это будет 10.

...