-(void)facebook{
ACAccountStore *account=[[ACAccountStore alloc] init]; //本机账户数据库, 储存weibo,facebook等各种账户
ACAccountType *accountType=[account accountTypeWithAccountTypeIdentifier:ACAccountTypeIdentifierFacebook];
NSLog(@"accountType:%@",accountType);
// NSMutableDictionary *optionsDict = [[NSMutableDictionary alloc] initWithObjectsAndKeys:@"1385295655043516",ACFacebookAppIdKey, @[@"email"], ACFacebookPermissionsKey,nil];
// Specify App ID and permissions
NSDictionary *options = @{
ACFacebookAppIdKey: @"appKey",
ACFacebookPermissionsKey: @[@"publish_stream", @"publish_actions"],
ACFacebookAudienceKey: ACFacebookAudienceFriends
};
[account requestAccessToAccountsWithType:accountType options:options completion:^(BOOL granted, NSError *error) {
if (granted) {
NSLog(@"认证通过");
if (!self.content.text) {
UIAlertView *a=[[UIAlertView alloc] initWithTitle:@"提示" message:@"请输入要发分享的内容" delegate:self cancelButtonTitle:@"OK" otherButtonTitles:nil, nil];
[a show];
return ;
}
NSArray *arrayAccounts=[account accountsWithAccountType:accountType];
NSLog(@"arrayAccounts:%@",arrayAccounts);
if ([arrayAccounts count]>0) {
// NSLog(@"认证通过");
SLRequest *request = [SLRequest requestForServiceType:SLServiceTypeFacebook
requestMethod:SLRequestMethodPOST
URL:[NSURL URLWithString:@"https://graph.facebook.com/me/feed"]
parameters:@{@"status": self.content.text}];
NSLog(@"account:%@",[[arrayAccounts objectAtIndex:0] class]);
request.account=[arrayAccounts objectAtIndex:0] ;
// [request addMultipartData:UIImagePNGRepresentation([UIImage imageNamed:@"icon_fb.png"]) withName:@"pic" type:@"multipart/form-data" filename:@"a.png"];
[request performRequestWithHandler:^(NSData *responseData, NSHTTPURLResponse *urlResponse, NSError *error) {
id jsonObj = [NSJSONSerialization JSONObjectWithData:responseData
options:NSJSONReadingAllowFragments error:&error];
NSLog(@"jsonObj:%@",jsonObj);
if (!error) {
NSLog(@"%@",[jsonObj objectForKey:@"statuses"]) ; //key更具api json决定
UIAlertView *a=[[UIAlertView alloc] initWithTitle:@"提示" message:@"分享成功" delegate:self cancelButtonTitle:@"OK" otherButtonTitles:nil, nil];
[a show];
}
}];
}else{
UIAlertView *a=[[UIAlertView alloc] initWithTitle:@"提示" message:@"无效账户,请到设置界面设置账号信息" delegate:self cancelButtonTitle:@"OK" otherButtonTitles:nil, nil];
[a show];
}
}
}];
}
//未验证成功
相关推荐
Social.framework使得应用可以方便地与系统内置的社交媒体服务如Facebook、Twitter以及Sina Weibo(在中国)进行交互。 Social.framework主要包括以下几个核心组件: 1. **SLRequest**:这是发起HTTP请求的主要类...
iOS 8 Facebook and Twitter Integration using SLRequest Chapter 93. An iOS 8 Twitter Integration Tutorial using SLRequest Chapter 94. Making Store Purchases with the SKStoreProductViewController Class...
104. iOS 10 Facebook and Twitter Integration using SLRequest 105. An iOS 10 Twitter Integration Tutorial using SLRequest 106. Making Store Purchases with the SKStoreProductViewController Class 107. ...
iOS 9 Facebook and Twitter Integration using SLRequest Chapter 99. An iOS 9 Twitter Integration Tutorial using SLRequest Chapter 100. Making Store Purchases with the SKStoreProductViewController ...
对于Twitter,可以使用`SLRequest`进行更灵活的API调用,这与`Twitter.framework`中的`TWTRAPIClient`类似,但接口更为统一,适用于多个社交服务。 在SocialDemo项目中,开发者可能已经创建了一个简单的应用,展示...
这个框架包含了SLRequest类,用于发送HTTP请求到社交媒体API,以及SLComposeViewController,用于展示一个预览界面,让用户方便地发布文本、图片或链接到他们的社交账户。 2. **OAuth**:许多社交媒体平台使用OAuth...
6. **Social Framework**:这个框架简化了集成社交网络,如Facebook和Twitter,使得分享内容变得更加便捷。开发者应熟悉SLRequest和SLComposeViewController的使用。 7. **Game Center**:iOS6的Game Center允许...
源码可能会有如何使用SLRequest或SLComposeViewController进行社交分享的代码,帮助开发者实现社交网络的整合。 5. **Storyboards增强**:在iOS6中,Storyboards支持Segues的自定义,可以更好地管理导航和视图控制...
3. **Social Framework**:iOS 6集成了Social Framework,使应用能方便地分享内容到Facebook和Twitter。书中会讲解如何集成这些社交网络,以及如何使用SLRequest发送自定义请求。 4. **MapKit**:学习如何利用...
6. **多平台支持**:除了新浪微博,Social.Framework还支持其他社交平台,如Facebook、Twitter等。源码可能演示了如何根据不同平台进行适配。 7. **版本兼容性**:由于Social.Framework是Apple的原生框架,因此源码...