【发布时间】:2015-05-13 14:51:07
【问题描述】:
我正在使用最新版本的 facebook sdk 4.1 for IOS,但是当我发布图像和文本时,它会出错。下面是我的代码 -
NSArray *permissions = [[NSArray alloc] initWithObjects: @"publish_actions", @"user_photos", nil];
[FBSession openActiveSessionWithPublishPermissions:permissions defaultAudience:FBSessionDefaultAudienceFriends allowLoginUI:YES completionHandler:^(FBSession *session,FBSessionState status,NSError *error)
{
if (error)
{
}
else if(FB_ISSESSIONOPENWITHSTATE(status))
{
[[FBRequest requestForMe] startWithCompletionHandler:
^(FBRequestConnection *connection, NSDictionary<FBGraphUser> *user, NSError *error) {
if (!error)
{
NSDictionary *parameters = [NSDictionary dictionaryWithObjectsAndKeys:
imgShare,@"picture", txtViewPost.text,@"message",
nil];
FBRequest *request = [FBRequest requestWithGraphPath:@"me/feed"
parameters:parameters
HTTPMethod:@"POST"];
FBRequestConnection *connection = [[FBRequestConnection alloc] init];
[connection addRequest:request
completionHandler:^(FBRequestConnection *connection, id result, NSError *error)
{
if (!error)
{
isFacebookActive = YES;
[btnFacebook setImage:[UIImage imageNamed:@"facebook-round-active-btn.png"] forState:UIControlStateNormal];
NSLog(@"Photo uploaded successfuly! %@",result);
}
else
{
NSLog(@"Photo uploaded failed :( %@",error.userInfo);
isFacebookActive = NO;
[btnFacebook setImage:[UIImage imageNamed:@"facebook-round--btn.png"] forState:UIControlStateNormal];
}
}];
[connection start];
}
}];
}
}];
以下是错误日志
Photo uploaded failed :( {
"com.facebook.sdk:ErrorSessionKey" = "<FBSession: 0x7fb7d20a3280, state: FBSessionStateOpen, loginHandler: 0x7fb7d0f40520, appID: 386374258207146, urlSchemeSuffix: , tokenCachingStrategy:<FBSessionTokenCachingStrategy: 0x7fb7d0ea89b0>, expirationDate: 2015-07-12 08:31:47 +0000, refreshDate: 2015-05-13 14:30:50 +0000, attemptedRefreshDate: 0000-12-30 00:00:00 +0000, permissions:(\n \"user_location\",\n \"user_events\",\n \"user_photos\",\n \"user_videos\",\n \"user_friends\",\n email,\n \"publish_actions\",\n \"public_profile\"\n)>";
"com.facebook.sdk:HTTPStatusCode" = 400;
"com.facebook.sdk:ParsedJSONResponseKey" = {
body = {
error = {
code = 100;
message = "(#100) picture is not properly formatted";
type = OAuthException;
};
};
code = 400;
};
}
【问题讨论】:
-
什么是
imgShare?日志中的错误是“图片格式不正确”。 -
imgShare 是 UIImage 的对象。
-
如果我正在查看正确的文档 (developers.facebook.com/docs/reference/ios/3.5/class/FBRequest),它似乎期望
image成为图像的 URL,而不是图像对象。
标签: ios objective-c iphone ios8.3