Yahoo php sdk getContacts () funciona de forma intermitente
Estoy usando elYahoo! SDK social para permitir que un usuario autorice y luego obtenga una lista de sus contactos. He configurado la aplicación para permitir que se lean los datos de contacto y esto se verifica cuando se autentica.
La autenticación funciona porque puedo usar el perfilgetProfile()
en cada carga de página. losgetContacts()
es el problema, ya que el 95% de las veces devuelve falso que no es correcto.
¿Estoy haciendo algo mal con los tokens de solicitud que significagetContacts()
¿No tiene el permiso correcto para ejecutarse correctamente o Yahoo tiene algún tipo de problema de almacenamiento en caché extraño con esta consulta? Es aún más difícil con la clara falta de documentación de ellos con respecto a su api y php, ¿hay otra biblioteca nueva que pueda usar para lograr esto? Sé que es posible porque puedo usar una versión funcional en la página web "AirBnb Invite a friend".
Este es el código que estoy usando, está escrito usando CodeIgniter, así que eso explica la sintaxis.
public function yahoo() {
$oauthapp = new YahooOAuthApplication(DEV_OAUTH_CONSUMER_KEY, DEV_OAUTH_CONSUMER_SECRET, DEV_OAUTH_APP_ID, DEV_OAUTH_DOMAIN);
if($this->session->userdata('yahoo_oauth_access_token')){
$oauthapp->token = YahooOAuthAccessToken::from_string($this->session->userdata('yahoo_oauth_access_token'));
$profile = $oauthapp->getProfile();
$contacts = $oauthapp->getContacts(0, 1000);
if($profile)
print_r($profile);
else
echo "No profile / error";
if($contacts)
print_r($contacts);
else
echo "No contacts / error";
}
elseif(!$this->input->get()) {
$request_token = $oauthapp->getRequestToken(DEV_OAUTH_DOMAIN);
$this->session->set_userdata('request_token', json_encode($request_token));
$redirect_url = $oauthapp->getAuthorizationUrl($request_token);
redirect($redirect_url);
}
else {
$request_token = json_decode($this->session->userdata('request_token'));
$oauthapp->token = $oauthapp->getAccessToken($request_token, $this->input->get('oauth_verifier'));
$this->session->set_userdata('yahoo_oauth_access_token', $oauthapp->token->to_string());
redirect("/index/yahoo");
}
}