https://github.com/1992chenlu/TwitterMediaDemo
包括Timeline的Demo的GitHub链接:
https://github.com/1992chenlu/CLTwitterDemo
(这个要配置好Fabric才可以跑)
1. Post Tweet with Photo
- (IBAction)tweetImage:(id)sender {
    if ([SLComposeViewController isAvailableForServiceType:SLServiceTypeTwitter])
    {
        
        SLComposeViewController *tweetSheet = [SLComposeViewController composeViewControllerForServiceType:SLServiceTypeTwitter];
        [tweetSheet setInitialText:@"#とある科学の超電磁砲# Twitter Demo Testing! Hahaha! "];
        
        //Add image
        [tweetSheet addImage:[UIImage imageNamed:@"mikoto.jpg"]];
        
        //Add URL
        [tweetSheet addURL:[NSURL URLWithString:@"http://codechen.blogspot.com/"]];
        
        [self presentViewController:tweetSheet animated:YES completion:nil];
    }
    else
    {
        NSLog(@"Failed");
    }
}
2. Post Tweet with Video
用到一个别人制作的SocialVideoHelper,GitHub链接:https://github.com/liu044100/SocialVideoHelper
调用uploadTwitterVideo这个函数即可。
- (IBAction)tweetVideo:(id)sender {
    if (_video == nil) {
        NSLog(@"No Video to upload!");
        return;
    }
    
    NSData *data = [NSData  dataWithContentsOfURL:_video];
    
    ACAccountStore *accountStore = [[ACAccountStore alloc] init];
    ACAccountType *accountType = [accountStore accountTypeWithAccountTypeIdentifier:ACAccountTypeIdentifierTwitter];
    [accountStore requestAccessToAccountsWithType:accountType options:NULL completion:^(BOOL granted, NSError *error) {
        if(granted) {
            NSArray *accountsArray = [accountStore accountsWithAccountType:accountType];
            if ([accountsArray count] > 0) {
                ACAccount *account = accountsArray[0];
                
                [SocialVideoHelper uploadTwitterVideo:data account:account withCompletion:^{
                    NSLog(@"%@", @"Video Uploaded! Hahaha!");
                }];
            }
        }
    }];
}
3. Show Timeline
需要先配置一下Fabric,然后粘下面的代码。reference: http://docs.fabric.io/ios/twitter/show-timelines.html
// Objective-C
// FABUserTimelineViewController.h
#import <UIKit/UIKit.h>
#import <TwitterKit/TwitterKit.h>
@interface FABUserTimelineViewController : TWTRTimelineViewController
@end
// FABUserTimelineViewController.m
#import "FABUserTimelineViewController.h"
#import <TwitterKit/TwitterKit.h>
@implementation FABUserTimelineViewController
- (void)viewDidLoad {
  [super viewDidLoad];
  [[Twitter sharedInstance] logInGuestWithCompletion:^(TWTRGuestSession *guestSession, NSError *error) {
    if (guestSession) {
      TWTRAPIClient *APIClient = [[Twitter sharedInstance] APIClient];
      TWTRUserTimelineDataSource *userTimelineDataSource = [[TWTRUserTimelineDataSource alloc] initWithScreenName:@"wanquribao" APIClient:APIClient];
      self.dataSource = userTimelineDataSource;
    } else {
      NSLog(@"error: %@", [error localizedDescription]);
    }
  }];
}
@end4.问题
尝试使用REST API上传图片,当地址在本地目录下时,没有问题,可以先get到这个图片对应的UIImage,转成NSData上传,但是,如果是相机拍摄的,作为参数传到同样的上传照片的函数中就无法,转成NSData就会得到nil,无法正常上传。(GitHub使用的问题终于解决了,原来是每次commit之前都没有用'git add .',竟然拖了这么久才发现,这脑残程度也是给自己跪了……ref: http://blog.csdn.net/jackystudio/article/details/12249419)
 
没有评论:
发表评论