1

我在我的应用程序中使用 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];`
4

2 回答 2

7

1.Facebook 使用 Accounts Framework 和 Social Framework 的 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];
          }
     }];
      }
       }
    
于 2013-03-21T13:37:02.530 回答
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"];
于 2014-02-15T20:15:28.773 回答