O Yahoo php sdk getContacts () funciona intermitentemente
Estou usando oYahoo! Social SDK para permitir que um usuário autorize e obtenha uma lista de seus contatos. Eu configurei o aplicativo para permitir que os dados de contato sejam lidos e isso é verificado na autenticação.
A autenticação funciona porque eu consigo o perfil usandogetProfile()
em cada carregamento de página. ogetContacts()
é o problema, embora em 95% do tempo retorne false, o que não está correto.
Estou fazendo algo errado com os tokens de solicitação que significamgetContacts()
não tem a permissão correta para executar com êxito ou o Yahoo tem algum tipo de problema de cache estranho com esta consulta? É ainda mais difícil com a falta distinta de documentação deles em relação à API e php. Existe outra nova biblioteca que posso usar para conseguir isso? Sei que é possível, porque posso usar uma versão funcional na página "AirBnb Convide um Amigo".
Este é o código que estou usando, é escrito usando CodeIgniter, para que explique a sintaxe.
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");
}
}