Facebook、Twitter、Tumblr共有などの共有機能を備えたiOSアプリケーションに取り組んでいます。Tumblr以外のすべての共有を行いました。私はこれにたくさん取り組んできました。私はたくさんのグーグルをしましたが、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
エラーが発生します。私はさまざまなスレッドで同じ問題を見てきました。これが私が試したリンクですが
、残念ながら今のところ運がありません。助けてください。