Yahoo! API контактов не работает для новых пользователей - PullRequest
1 голос
/ 22 сентября 2011

Последние несколько дней я потратил на реализацию связи на основе OAuth с Yahoo! для того, чтобы получить контактную информацию пользователя, и я успешно создал реализацию, которая прекрасно работает с Yahoo! аккаунт я создал несколько лет назад.

Теперь я пытаюсь получить контакты для пользователя, которого я только что создал, и Yahoo! возвращает невероятно информативную ошибку 503 (служба недоступна) в размере:

<?xml version="1.0" encoding="utf-8"?>
<error xmlns="http://social.yahooapis.com/v1/schema.rng" xmlns:yahoo="http://www.yahooapis.com/v1/base.rng" yahoo:uri="http://www.yahooapis.com/v1/errors/503" yahoo:lang="en-US">
  <description>Not available</description>
  <detail>new user</detail>
</error>

В настоящее время я использую старую версию API Контактов, которая запрашивается с запросом: http://social.yahooapis.com/v1/user/{guid}/contacts?format=XML, поэтому, чтобы отследить проблему, я протестировал запрос к новому механизму на основе YQL в Консоль YQL и смогла получить контакты для данного пользователя. Я попытался переключить свое приложение на использование YQL, но по какой-то причине повторное использование процесса авторизации OAuth, который я использовал для старого API, приводит к ошибке 401 (неавторизованным), когда я запрашиваю http://query.yahooapis.com/v1/yql?format=xml&q=select%20*%20from%20social.contacts%20where%20guid={guid} (или guid=me):

<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<yahoo:error xmlns:yahoo="http://www.yahooapis.com/v1/base.rng" yahoo:uri="http://yahoo.com" xml:lang="en-US">
  <yahoo:description>Please provide valid credentials. OAuth oauth_problem=&quot;OST_OAUTH_SIGNATURE_INVALID_ERROR&quot;, realm=&quot;yahooapis.com&quot;</yahoo:description>
  <yahoo:detail>Please provide valid credentials. OAuth oauth_problem=&quot;OST_OAUTH_SIGNATURE_INVALID_ERROR&quot;, realm=&quot;yahooapis.com&quot;</yahoo:detail>
</yahoo:error>

Итак, у меня есть два вопроса, и я был бы рад ответить на любой из них:

  1. Почему я не могу получить контакты от Yahoo! старый API контактов для нового Yahoo! счета
  2. (ИЛИ) Почему мой YQL-запрос для контактов возвращает ошибку 401?

Update

Я провел дальнейшее тестирование с использованием исходного API контактов, и, похоже, Yahoo! блокирует поиск контактов для пользователей, которые были созданы недавно. Хотя я не уверен, что Yahoo! С учетом «недавнего» я ​​смог получить контакты для пользователя, созданного чуть более 2 недель назад. Почему этого нет в их документации? (

...