How can i post on twitter without showing dialogue in ios?

房东的猫 提交于 2019-12-10 12:16:42

问题


I want to post my status on twitter. I want to add an image, but I dont want a share dialogue.

Instead I'd like an interface like Instagram, where the user just selects twitter and presses 'share', so it's easy.

Here is my running code so far:

//  Create an instance of the Tweet Sheet
SLComposeViewController *tweetSheet = [SLComposeViewController
                                       composeViewControllerForServiceType:
                                       SLServiceTypeTwitter];

// Sets the completion handler.  Note that we don't know which thread the
// block will be called on, so we need to ensure that any required UI
// updates occur on the main queue
tweetSheet.completionHandler = ^(SLComposeViewControllerResult result) {
    switch(result) {
            //  This means the user cancelled without sending the Tweet
        case SLComposeViewControllerResultCancelled:
            break;
            //  This means the user hit 'Send'
        case SLComposeViewControllerResultDone:
            break;
    }
};

//  Set the initial body of the Tweet
[tweetSheet setInitialText:@"Socia"];

//  Adds an image to the Tweet.  For demo purposes, assume we have an
//  image named 'larry.png' that we wish to attach
if (![tweetSheet addImage:[UIImage imageNamed:@"icon120x120.png"]]) {
    NSLog(@"Unable to add the image!");
}

//  Add an URL to the Tweet.  You can add multiple URLs.
if (![tweetSheet addURL:[NSURL URLWithString:@"http://stackoverflow.com/questions/ask?title="]]){
    NSLog(@"Unable to add the URL!");
}

//  Presents the Tweet Sheet to the user
[self presentViewController:tweetSheet animated:NO completion:^{
    NSLog(@"Tweet sheet has been presented.");
}];

回答1:


 [account requestAccessToAccountsWithType:accountType withCompletionHandler:^(BOOL granted, NSError *error)
 {
   if (granted == YES)
    {
      // Populate array with all available Twitter accounts
     NSArray *arrayOfAccounts = [account accountsWithAccountType:accountType];
     if ([arrayOfAccounts count] > 0)
      {
           //use the first account available
       ACAccount *acct = [arrayOfAccounts objectAtIndex:0];

       //create this request 
       SLRequest *postRequest = [SLRequest requestForServiceType:SLServiceTypeTwitter requestMethod:SLRequestMethodPOST URL:[NSURL   URLWithString:@"https://api.twitter.com"@"/1.1/statuses/update_with_media.json"] parameters:  [NSDictionary dictionaryWithObject:message forKey:@"status"]];
       UIImage *imageToPost = [UIImage imageNamed:@"image.jpg"];
       NSData *imageData = UIImageJPEGRepresentation(imageToPost, 1.0f);//set the compression quality
      [postRequest addMultipartData:imageData withName:@"media" type:@"image/jpeg" filename:@"image.jpg"];

   //set account and same as above code 

....
 ....

The above is from this link and this code worked for me.

Here you can find how to post Twitter's updates with media here.



来源:https://stackoverflow.com/questions/23912592/how-can-i-post-on-twitter-without-showing-dialogue-in-ios

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!