我在iOS6上添加了正常运行的功能,但是对于iOS7,我不得不更新Facebook SDK,因为旧版本的id和setId被标记为非公开且未经过验证。 所以,我用新的SDK替换了旧的SDK,当然,后期图像不再有效(因为id肯定是未知的)。 我有这个:
[params setObject:textViewMessageFacebook.text forKey:@"message"];
[params setObject:UIImagePNGRepresentation(screenshot) forKey:@"picture"];
[FBRequestConnection startWithGraphPath:[NSString stringWithFormat:@"%@/photos", idAmiS]
parameters:params
HTTPMethod:@"POST"
completionHandler:^(FBRequestConnection *connection,
id result,
NSError *error)
但不知道如何纠正它让它工作...... 感谢
答案 0 :(得分:0)
使用SlComposer Controller在Facebook上发布图片。
1)首先将社交框架和帐户框架添加到项目中,然后尝试下面的代码
将此代码写入您想要的地方......
{
ACAccountType *facebookTypeAccount = [accountStore accountTypeWithAccountTypeIdentifier:ACAccountTypeIdentifierFacebook];
[accountStore requestAccessToAccountsWithType:facebookTypeAccount
options:@{ACFacebookAppIdKey: @"131740927031850", ACFacebookPermissionsKey: @[@"email"]}
completion:^(BOOL granted, NSError *error) {
if(granted){
NSArray *accounts = [accountStore accountsWithAccountType:facebookTypeAccount];
_facebookAccount = [accounts lastObject];
ACAccountCredential *fbCredential = [_facebookAccount credential];
accessToken = [fbCredential oauthToken];
NSLog(@"Facebook Access Token: %@", accessToken);
NSLog(@"Success");
[self facebook];
}else{
NSLog(@"Fail");
NSLog(@"Error: %@", error);
}
}];
if ([SLComposeViewController isAvailableForServiceType:SLServiceTypeFacebook])
{
SLComposeViewController *tweetSheet = [SLComposeViewController composeViewControllerForServiceType:SLServiceTypeFacebook];
[tweetSheet setInitialText:@"posting from my own app! :)"];
[tweetSheet addURL:[NSURL URLWithString:@"www.xyz.com"]];
// Here you add the image
[tweetSheet addImage:[UIImage imageNamed:@"yourimage.png"]];
[self presentViewController:tweetSheet animated:YES completion:nil];
}
else
{
UIAlertView *alertView = [[UIAlertView alloc]
initWithTitle:@"Sorry"
message:@"You can't send a tweet right now, make sure your device has an internet connection and you have at least one Twitter account setup"
delegate:self
cancelButtonTitle:@"OK"
otherButtonTitles:nil];
[alertView show];
}
}
- (void)facebook
{
NSURL *meurl = [NSURL URLWithString:@"https://graph.facebook.com/me"];
NSLog(@"URl:-%@",meurl);
SLRequest *merequest = [SLRequest requestForServiceType:SLServiceTypeFacebook
requestMethod:SLRequestMethodGET
URL:meurl
parameters:nil];
merequest.account = _facebookAccount;
[merequest performRequestWithHandler:^(NSData *responseData, NSHTTPURLResponse *urlResponse, NSError *error) {
NSString *meDataString = [[NSString alloc] initWithData:responseData encoding:NSUTF8StringEncoding];
NSLog(@"Parsed Data:-%@", meDataString);
}];
}