使用SocialEngine,您可以简化获取iOS Facebook或Twitter账户信息,以及简化消息、链接或图片的分享,这一切都可以快速且轻松完成。
SocialEngine只包含两个类,需要Twitter.framework、Social.framework、Accounts.framework以及MessageUI.framework。SocialEngine适用于iOS 6.0及以上版本。
以下是一个简单的Objective-C示例
#import "SocialEngine.h"
// facebook user infos
[FacebookEngine getUserInfoWithAppID:@"1234567890" complete:^(NSDictionary *userInfo, NSError *error) {
if (userInfo == nil) {
NSLog(@"Invalid Facebook AppID!");
} else {
NSLog(@"Facebook User infos : %@", userInfo);
// load profile image
NSString *image_url = [userInfo objectForKey:@"profile_image_url"];
NSData *data = [NSData dataWithContentsOfURL:[NSURL URLWithString:image_url]];
UIImage *profileImage = [UIImage imageWithData:data];
}
}];
// facebook share
UIImage *img = [UIImage imageNamed:@"my-image.jpg"];
[FacebookEngine shareURI:@"http://www.my-domain.com" // you url (uri)
text:@"My site" // you default message
image:img // you image
complete:^{
NSLog(@"Facebook message shared.");
// TODO: your code here when sharing is completed
} failWithError:^(NSError *error) {
NSLog(@"Facebook message not shared!");
// TODO: your code here were not shared or canceled
}];
}];
// facebook app infos
[FacebookEngine getAppAccessTokenWithAppId:@"1234567890" cosumerSecret:@"1234567890"
complete:^(NSString *token, NSError *error) {
[FacebookEngine getAppInfoFromToken:token complete:^(NSDictionary *appInfo, NSError *error) {
NSLog(@"Facebook App infos : %@", appInfo);
}];
}];
// twitter user infos
[TwitterEngine getUserInfoWithComplete:^(NSDictionary *userInfo, NSError *error) {
if (userInfo == nil) {
NSLog(@"Invalid Twitter account!");
} else {
NSLog(@"Twitter User infos : %@", userInfo);
// load profile image
NSString *image_url = [userInfo objectForKey:@"profile_image_url"];
NSData *data = [NSData dataWithContentsOfURL:[NSURL URLWithString:image_url]];
UIImage *profileImage = [UIImage imageWithData:data];
}
}];
// twitter share
UIImage *img = [UIImage imageNamed:@"my-image.jpg"];
[TwitterEngine shareURI:@"http://www.my-domain.com" // you url (uri)
text:@"@my-screename " // you default message
image:img // you image
complete:^{
NSLog(@"Twitter message shared.");
// TODO: your code here when sharing is completed
} failWithError:^(NSError *error) {
NSLog(@"Twitter message not shared!");
// TODO: your code here were not shared or canceled
}];
// email share
UIImage *img = [UIImage imageNamed:@"my-image.jpg"];
[[EmailEngine sharedInstance] shareURI:@"http://www.my-domain.com" // you url (uri)
text:@"My site" // you default message
image:img // you image
complete:^(MFMailComposeResult result) {
NSLog(@"Email message sended.");
// TODO: your code here when sharing is completed
} failWithError:^(NSError *error) {
NSLog(@"Email message not sended!");
// TODO: your code here were not shared or canceled
}];