如何使用Xcode共享文本到Tumblr

我正在开发一个具有Facebook,Twitter和Tumblr共享function的iOS应用程序。 除了Tumblr之外,我已经完成了所有的分享。 我在这方面做了很多工作。 我做了大量的search,但没有发现Tumblr共享。 这是我目前使用的Tumblr共享文本的代码:

- (void)shareOvertumblr:(id)sender { NSMutableURLRequest *request = [[NSMutableURLRequest alloc] initWithURL: [NSURL URLWithString:@"http://www.tumblr.com/api/write"]]; [request setHTTPMethod:@"POST"]; //tell the server to expect 8-bit encoded content as we're sending UTF-8 data, //and UTF-8 is an 8-bit encoding [request addValue:@"8bit" forHTTPHeaderField:@"Content-Transfer-Encoding"]; //set the content-type header to multipart MIME [request addValue: [NSString stringWithFormat:@"multipart/form-data; boundary=%@",[NSString MIMEBoundary]] forHTTPHeaderField: @"Content-Type"]; //create a dictionary for all the fields you want to send in the POST request NSDictionary* postData = [NSDictionary dictionaryWithObjectsAndKeys: @"myEmailAddress", @"email", @"password", @"password", @"regular", @"type", @"myTitle", @"title", @"Hiiii How ruuu", @"body", nil]; //here inPlace of these EmailAddress and Password using my correct emailAdress and Password //set the body of the POST request to the multipart MIME encoded dictionary [request setHTTPBody: [[NSString multipartMIMEStringWithDictionary: postData] dataUsingEncoding: NSUTF8StringEncoding]]; [NSURLConnection connectionWithRequest:request delegate:self]; } /*Here is The Category */ @interface NSString (MIMEAdditions) + (NSString*)MIMEBoundary; + (NSString*)multipartMIMEStringWithDictionary:(NSDictionary*)dict; @end @implementation NSString (MIMEAdditions) //this returns a unique boundary which is used in constructing the multipart MIME body of the POST request + (NSString*)MIMEBoundary { static NSString* MIMEBoundary = nil; if(!MIMEBoundary) MIMEBoundary = [[NSString alloc] initWithFormat:@"----_=_YourAppNameNoSpaces_%@_=_----",[[NSProcessInfo processInfo] globallyUniqueString]]; return MIMEBoundary; } //this create a correctly structured multipart MIME body for the POST request from a dictionary + (NSString*)multipartMIMEStringWithDictionary:(NSDictionary*)dict { NSMutableString* result = [NSMutableString string]; for (NSString* key in dict) { [result appendFormat:@"--%@\nContent-Disposition: form-data; name=\"%@\"\n\n%@\n", [NSString MIMEBoundary],key,[dict objectForKey:key]]; } [result appendFormat:@"\n--%@--\n",[NSString MIMEBoundary]]; return result; } @end /*Connection Delegate Methods*/ - (void)connection:(NSURLConnection *)connection didFailWithError:(NSError *)error { [self.view setUserInteractionEnabled:YES]; } -(void)connection:(NSURLConnection *)connection didReceiveResponse:(NSURLResponse *)response{ webData = [[NSMutableData alloc] initWithLength:0]; // webData is The NSMutable data } -(void)connectionDidFinishLoading:(NSURLConnection *)connection { NSString* responseString = [[NSString alloc] initWithData: webData encoding: NSUTF8StringEncoding]; NSLog(@"Response String %@",responseString); // here i got Authentication failed as Response ..... } -(void)connection:(NSURLConnection *)connection didReceiveData:(NSData *)data{ [webData appendData:data]; } 

每当我运行此代码获取一些Authentication failed错误。 我在各种线程上看到了同样的问题。 这里是我试过的链接但不幸的是没有运气到目前为止。 请帮忙。

而不是你自己的代码,你可以使用ShareKit

它只需要三行代码即可为您的应用程序添加完整的共享function。

ShareKit是一个开源的框架,可以放入任何iPhone或iPad应用程序,以立即添加完整的共享function。

您可以使用ShareKit通过几行代码在Tumblr中添加共享URL,图像和文本。

分享文字

+ (SHKItem *)text:(NSString *)text;

 NSString *someText = @"This is a blurb of text I highlighted from a document."; SHKItem *item = [SHKItem text:someText]; 

你可以在这里看到更多的细节