2013-03-21 61 views
1

我在我的应用程序中使用Facebook和Twitter共享,在这里我想分享默认链接和文本而不显示共享窗口,我尝试了很多方法,但仍然没有得到解决方案。如何在ios 6的facebook和twitter上自动共享?

这是我的代码:

NSString *str_face=[NSString stringWithFormat:@"Another insta from Dealnabit just claimed now, Got yours now"]; 
SLComposeViewController *facebookPostVC =[SLComposeViewController composeViewControllerForServiceType:SLServiceTypeFacebook ]; 

[facebookPostVC addImage:[UIImage imageNamed:@"Default.png"]]; 

[facebookPostVC setInitialText:str_face]; 

[self presentViewController:facebookPostVC animated:YES completion:Nil];` 

回答

7

1.对于Facebook的使用帐户框架和社会框架的SLRequest没有对白

-(void)Post 
{ 
ACAccountStore *accountStore = [[ACAccountStore alloc] init]; 

ACAccountType *facebookAccountType = [self.accountStore 
    accountTypeWithAccountTypeIdentifier:ACAccountTypeIdentifierFacebook]; 

// Specify App ID and permissions 
NSDictionary *options = @{ 
     ACFacebookAppIdKey: @"my app id", 
     ACFacebookPermissionsKey: @[@"publish_stream", @"publish_actions"], 
     ACFacebookAudeinceKey: ACFacebookAudienceFriends 
}; 

[accountStore requestAccessToAccountsWithType:facebookAccountType 
     options:options completion:^(BOOL granted, NSError *e) { 
     if (granted) { 
      NSArray *accounts = [self.accountStore 
        accountsWithAccountType:facebookAccountType]; 
      facebookAccount = [accounts lastObject]; 
     } 
     else 
     { 
      // Handle Failure 
     } 
}]; 

NSDictionary *parameters = @{@"message": @"test post"}; 

NSURL *feedURL = [NSURL URLWithString:@"https://graph.facebook.com/me/feed"]; 

SLRequest *feedRequest = [SLRequest 
     requestForServiceType:SLServiceTypeFacebook 
     requestMethod:SLRequestMethodPOST 
     URL:feedURL 
     parameters:parameters]; 

    feedRequest.account = self.facebookAccount; 

    [feedRequest performRequestWithHandler:^(NSData *responseData, 
      NSHTTPURLResponse *urlResponse, NSError *error) 
    { 
     // Handle response 
    }]; 
} 
  1. Twitter发布iOS6的无对话

    -(void)PostToTwitter 
        { 
    
    ACAccountStore *account = [[ACAccountStore alloc] init]; 
    ACAccountType *accountType = [account accountTypeWithAccountTypeIdentifier: 
    ACAccountTypeIdentifierTwitter]; 
    
    [account requestAccessToAccountsWithType:accountType options:nil 
         completion:^(BOOL granted, NSError *error) 
        { 
    if (granted == YES) 
    { 
         NSArray *arrayOfAccounts = [account 
          accountsWithAccountType:accountType]; 
    
         if ([arrayOfAccounts count] > 0) 
         { 
         ACAccount *twitterAccount = [arrayOfAccounts lastObject]; 
    
         NSDictionary *message = @{@"status": @”Test Twitter post from iOS 6”}; 
    
         NSURL *requestURL = [NSURL 
         URLWithString:@"http://api.twitter.com/1/statuses/update.json"]; 
    
         SLRequest *postRequest = [SLRequest 
          requestForServiceType:SLServiceTypeTwitter 
            requestMethod:SLRequestMethodPOST 
            URL:requestURL parameters:message]; 
         } 
    }]; 
        } 
        } 
    
+0

@maddysan:是它的工作? – BhushanVU 2013-03-22 05:25:18

+0

其不工作的应用程序崩溃,请给出任何示例应用程序链接。 – maddysan 2013-03-22 09:22:43

+0

奇怪的原因,它在我的工作结束,反正看看这个http://blogs.captechconsulting.com/sites/default/files/TempFBapp.zip – BhushanVU 2013-03-22 09:24:02

1

我认为Twitter的例子后缺少执行请求:

// Post the request 
[postRequest setAccount:twitterAccount]; 

// Block handler to manage the response 
[postRequest performRequestWithHandler:^(NSData *responseData, NSHTTPURLResponse *urlResponse, NSError *error) 
     { 
     NSLog(@"Twitter response, HTTP response: %i", [urlResponse statusCode]); 
     }]; 

而且我会使用最新版本的API和https的:

NSURL *requestURL = [NSURLURLWithString:@"https://api.twitter.com/1.1/statuses/update.json"]; 
相关问题