Probleme mit dem hochladen der Fotos auf TwitPic Verwendung von OAuth in Objective-C auf dem iPhone
Arbeite ich auf eine iPhone-app, eine Funktion zum hochladen von Fotos auf TwitPic. Ich habe es die Arbeit mit basic-Authentifizierung.
Ich versuche, es zu erhalten arbeitend mit OAuth. Ich bin immer Authentifizierung Fehler. Ich habe studiert, sehr sorgfältig die TwitPic-Dokumentation.
Ich bin Ermächtigung der app durch die Anzeige einer UI-Web-View und es gibt einen PIN-Wert. Ich geben Sie den PIN-Wert in der app und fordern Sie den token ein.
Ich bin in der Lage, hochladen, status-updates auf Twitter, aber keine Fotos.
Mein code basiert auf dem Beispiel-code von hier:
Hier ist mein code:
NSString *url = @"http://api.twitpic.com/2/upload.json";
NSString *oauth_header = [oAuth oAuthHeaderForMethod:@"POST" andUrl:url andParams:nil];
NSLog(@"OAuth header : %@\n\n", oauth_header);
ASIFormDataRequest *request = [ASIFormDataRequest requestWithURL:[NSURL URLWithString:url]];
[request addRequestHeader:@"User-Agent" value:@"ASIHTTPRequest"];
request.requestMethod = @"POST";
[request addRequestHeader:@"X-Auth-Service-Provider" value:@"https://api.twitter.com/1/account/verify_credentials.json"];
[request addRequestHeader:@"X-Verify-Credentials-Authorization" value:oauth_header];
NSData *imageRepresentation = UIImageJPEGRepresentation(imageToUpload, 0.8);
[request setData:imageRepresentation forKey:@"media"];
[request setPostValue:@"Some Message" forKey:@"message"];
[request setPostValue:TWITPIC_API_KEY forKey:@"key"];
[request setDelegate:self];
[request setDidFinishSelector:@selector(requestDone:)];
[request setDidFailSelector:@selector(requestFailed:)];
[request start];
Hier ist der OAuth-Header:
OAuth realm="http://api.twitter.com/", oauth_timestamp="1275492425", oauth_nonce="b686f20a18ba6763ac52b689b2ac0c421a9e4013", oauth_signature_method="HMAC-SHA1", oauth_consumer_key="zNbW3Xi3MuS7i9cpz6fw", oauth_version="1.0", oauth_token="147275699-jmrjpwk3B6mO2FX2BCc9Ci9CRBbBKYW1bOni2MYs", oauth_signature="d17HImz6VgygZgbcp845CD2qNnI%3D"
Du musst angemeldet sein, um einen Kommentar abzugeben.
HA! Ich habe es gefunden!
Wir sollten die header mit https://api.twitter.com/1/account/verify_credentials.json und der post http://api.twitpic.com/2/upload.json! (Und BEKOMMEN)
Verwenden GSTwitPicEngine: https://github.com/Gurpartap/GSTwitPicEngine
Mit GSTwitPicEngine:
Initialisieren der engine mit der Klasse oder Bedarf:
Finden Sie die Autorisierungs-und token-Versorgung twitpicEngine mit:
Dann auf Bild hochladen und fügen Sie eine SMS-Nachricht zusammen mit ihm (nicht mit der post zu twitter):
Upload Bild nur:
Nach dem Ende der Anfrage, eine der delegate-Methoden aufgerufen wird mit den entsprechenden Daten und Informationen.
GSTwitPicEngineDelegate-Protokoll legt zwei delegate-Methoden:
und
Alles so eingestellt?
OAuth-Methode zu generieren, ein header muss ERHALTEN werden. Nicht POST.
Auch die url muss https://api.twitter.com/1/account/verify_credentials.json
Dank, dies hat mir geholfen, es funktioniert auch 🙂 ich auch aktualisiert http://github.com/jaanus/PlainOAuth mit Beispiel-code.