2009-06-09 8 views
12

Sto provando a utilizzare l'API di Twitter e OAuth per inviare aggiornamenti di stato (nuovi tweet). Sto usando l'esempio di codice di Shannon Whitley .NET http://www.voiceoftech.com/swhitley/?p=681 (come raccomandato nei documenti dell'API di Twitter). Posso leggere (GET) usando OAuth bene, tuttavia quando provo a inviare un aggiornamento di stato tramite http: //twitter.com/statuses/update.xml (usando un POST), restituisce un 401 con il seguente codice XML:API Twitter + OAuth: impossibile inviare aggiornamenti di stato, ottenendo 401

<?xml version="1.0" encoding="UTF-8"?> 
<hash> 
    <request>/statuses/update.xml</request> 
    <error>Read-only application cannot POST</error> 
</hash> 

giuro che ho impostato la mia applicazione per utilizzare leggere e scrivere, la pagina Autorizza a Twitter (http: //twitter.com/oauth/authorize) dice anche "l'applicazione TweeVerbs.com (sviluppo) vorrebbe la possibilità di accedere a e aggiornare i dati di su Twitter. "

Eppure continua a dire "L'applicazione di sola lettura non può POSTARE". WTF !?

Ho cercato su Google questo messaggio di errore finché non sono stato blu in faccia. Ho trovato da qualche parte che ha detto di aggiungere la querystring paremeter oauth_access_type = scrivere alla URL di reindirizzamento, che va alla pagina di Twitter autorizzazione che ho fatto, ma mi dà ancora un 401.


Se aiuta, qui sono i dati che sta ottenendo rimandato e Firth come per il flusso di lavoro OAuth:

Richiesta Autorizza Token:

http:? //twitter.com/oauth/request_token oauth_consumer_key = tViV8vAt4cqSKbGdPGWT7Q & oauth_nonce = 2.790.042 & oauth_signature_method = HMAC-SHA1 & oauth_timestamp = 1.244.567,068 mila & oauth_version = 1.0 & oauth_signature = KzxcXN% 2bQ0AJoAJ% 2flQfzs8SLjC% 2fQ% 3d

Generated URL Autorizza Redirect:

http: // Twitter ? .com/OAuth/autorizzare oauth_token = EpyBg3nJGOmtmBjRUAsqqaGHARb2F2F2VcccqHkwio & oauth_access_type = scrivere

autorizza schermo Messaggio:"L'applicazione TweeVerbs.com (Sviluppo) vorrebbe la possibilità di accedere e aggiornare i tuoi dati su Twitter. Questa applicazione prevede di utilizzare Twitter per l'accesso in futuro. Esci se si desidera connettersi ad un account diverso da Sironfoot "

Get token di accesso:.

http:? //twitter.com/oauth/access_token oauth_consumer_key = tViV8vAt4cqSKbGdPGWT7Q & oauth_nonce = 2.016.804 & oauth_signature_method = HMAC-SHA1 & oauth_timestamp = 1.244.567,166 mila & oauth_token = EpyBg3nJGOmtmBjRUAsqqaGHARb2F2F2VcccqHkwio & oauth_version = 1.0 & oauth_signature =% 2bEVQUxUPLT% 2b% 2bkfaG0Vq1YJZXcAw% 3d

Chiamata dell'API di aggiornamento: URL - http: //twitter.com/statuses/update.XML dati POST - oauth_consumer_key = tViV8vAt4cqSKbGdPGWT7Q & oauth_nonce = 5.707.692 & oauth_signature_method = HMAC-SHA1 & oauth_timestamp = 1.244.567,268 mila & oauth_token = 19.130.957-nb89DjZhjCAzcbHUa96yRWHqlQFQIJ0AKyXpqnHt1 & oauth_version = 1.0 & status = HelloWorld & oauth_signature = QWA% 2bWY0IxveeSJ7G3Ewy3whh1sE% 3d

+0

'Chiamata API aggiornamento stato' non manca' oauth_verifier'? Potrei pubblicare solo questo parametro ... E 'oauth_callback' ... – BrunoLM

+0

Wow, è sia una domanda che un ottimo condensato di Twitter oauth. Ho salvato la mia giornata, 1000 giorni dopo. –

risposta

15

Non so quale fosse il problema, ma ho cancellato la mia registrazione dell'applicazione su Twitter (devi registrare app su Twitter per ottenere le chiavi OAuth, ecc.), E poi ricreato. Ora funziona bene. Strano, probabilmente un problema con Twitter che rovina.

Sto anche usando Tweetsharp (http://tweetsharp.com/), lo consiglio vivamente, ha una buona API fluente. Nota: passare a Tweetsharp non era la soluzione, avevo già commutato e ho avuto lo stesso problema fino a quando non ho eliminato e ricreato la registrazione dell'app su Twitter.

+1

che ha risolto il mio problema ... sembra che Twitter abbia problemi nel cambiare un'app di sola lettura in lettura-scrittura. – sean

+1

Eliminata e ricreata l'app di Twitter. Non penso di aver fatto nulla di diverso la seconda volta, ma ha funzionato. – IMAbev

+0

Grazie! Questo mi ha davvero salvato la vita. Twitter ha un bug per questo. –

0

Non ce l'ho più volte ora, senza successo, ricevo un'eccezione 401 durante la richiesta di un token di accesso da Twitter.

Sto usando Tweetsharp come te.

8

Se si è autorizzato l'applicazione ad accedere al proprio account Twitter quando l'applicazione è stata impostata in modalità "accesso di sola lettura" e si ottiene l'errore "L'applicazione di sola lettura non può POST" dopo aver modificato le impostazioni dell'applicazione da "leggere e scrivere" accesso ", quindi è necessario revocare l'accesso all'applicazione su https://twitter.com/settings/connections e quindi autorizzarlo di nuovo. Il token di accesso "sola lettura" tende ad essere appiccicoso finché non lo revochi.

+0

Ho appena salvato la mia vita!Ero alle prese con "L'applicazione di sola lettura non può postare" per un'ora ... Ho ricreato le volte in cui si verifica l'app server, ma ogni volta i token di accesso sono stati generati prima dell'opzione di impostazione "lettura/scrittura" dell'applicazione. – mcmil

+0

Perfetto :) :) thnx .. questo ha aiutato molto :) – Apoorva

1

plus controlla anche se l'OROLOGIO del sistema è sincronizzato con Internet; su Windows è possibile farlo regolando le impostazioni di data e ora

perché se CLOCK non viene sincronizzato si ottengono 401 eccezioni non autorizzate; buona fortuna applausi

+0

Spot on - questo è successo a me - grazie per aver postato questo in quanto mi ha permesso di risolvere il mio problema – Graeme

3

Spero che questo aiuti.

Problemi correlati