2010-05-30 17 views
7

Sto cercando di ottenere l'autenticazione di Twitter che funziona sul mio sito ASP.NET. Quando crei l'app sul sito web di Twitter, devi specificare un URL di richiamata, che ho impostato su http://mydomain.comTwitter oauth_callback parametro viene ignorato!

Ho letto la specifica di oAuth 1.0a e per sovrascrivere questo URL di richiamata con il tuo personale personalizzato devi inviare il parametro oauth_callback nella fase request_token (ovviamente codificato in url).

Quindi la mia richiesta URL assomiglia a questo:

http://twitter.com/oauth/request_token?oauth_callback=http%3A%2F%2Fmydomain.com%2Ftwittercallback

Presumibilmente, se tutto va secondo i piani, i dati di risposta, si suppone di ricevere un nuovo parametro di oauth_callback_confirmed = true in aggiunta al tuo parametri di token e token secret.

Tuttavia, la mia risposta arriva attraverso come: oauth_token = MYTOKEN & oauth_token_secret = MYTOKENSECRET

So che non voi ragazzi ho dato la più grande quantità di andare avanti, ma io sono al mio fine ingegno da perché non sto ricevendo il parametro oauth_callback_confirmed. Senza questo, la mia applicazione mantiene di default l'URL di callback hard-coded sul sito web di Twitter. Per favore, se qualcuno mi può aiutare, sarò eternamente grato!

Grazie, A.

+0

Ho aggiunto un tag twitterapi. – amelvin

risposta

0

ho usato this guide per impostare il mio PC da utilizzare come la posizione di callback. Fondamentalmente hai impostato il tuo file hosts in un certo modo, svuota la cache e aggiungi un paio di valori di registro di Firefox. Alla fine, quando esegui il debug di una chiamata oauth, il reindirizzamento ritorna sul tuo PC locale.

Come ho detto ha funzionato per me.

8

Ho letto le specifiche oAuth 1.0a, e per sostituzione questo URL callback con la proprio uno personalizzato è necessario inviare il parametro oauth_callback nella fase request_token (con codifica URL del ovviamente) .

Quindi la mia richiesta URL assomiglia a questo:

http://twitter.com/oauth/request_token?oauth_callback=http%3A%2F%2Fmydomain.com%2Ftwittercallback

solo perché hai letto la specifica non significa che TWITTER leggerlo. : P

kidding - questo è sostanzialmente corretto, ma il modo in cui a Twitter piace ricevere questi dati è leggermente diverso (e non ben documentato).

il modo in cui ho trovato per ottenere il oauth_callback per confermare è la seguente: specificare il oauth_callback nei parametri della funzione richiesta, NON all'interno dell'URL.

esempio python (utilizzando OAuth2):

''' Create our client.''' 

client = oauth.Client(consumer) 

''' do the request ''' 

resp, content = client.request(request_token_url,"POST",body=urllib.urlencode({'oauth_callback':callbackURL})) 


''' note that it's called "body" in this particular OAuth function for Client but in OAuth Request object it's called "parameters." YMMV depending on programming language/ library of course. ''' 

questo è anche l'unico modo sono riuscito a ottenere un OAuth verificatore indietro.presumibilmente non dovrebbe essere necessario specificare l'URL di callback ogni volta, poiché lo forniamo nelle impostazioni dell'app ... ma l'esperienza sembra indicare il contrario.

infine, si prega di essere consapevoli del fatto che alla gamba 3 devi fare la stessa cosa di NUOVO - questa volta compreso il oauth_verifier così come l'URL di callback nei parametri.

speranza che questo aiuta - non può cominciare a dirvi quanta fatica ho messo in capire questo fuori.

buona fortuna!

J

1
<?php 
    // oauth-php example 
    $token = OAuthRequester::requestRequestToken(
       $consumer_key, 
       $user_id, 
       array('oauth_callback'=> urlencode($callback_uri)) 
      ); 
?> 
Problemi correlati