当前位置: 首页 > 知识库问答 >
问题:

除了我的ios之外,无法在facebook墙上发布

裴经义
2023-03-14

我已经集成了最新的facebook sdk,我用我的帐户ABC在开发者上创建应用程序。。。。并使用Facebook应用程序id。如果我用我的ABC帐户登录Ios应用程序并用facebook登录,一切都很好。它成功地贴在我的墙上。

但是如果我使用任何其他帐户登录facebook。我成功登录,但当我发布时我出错了。

**我得到了这个错误**r

Error Domain=com.facebook.sdkCode=5"无法完成操作。(com.facebook.sdk错误5.)"UserInfo=0x22689930{com.facebook.sdk: HTTPStatusCode=403,com.facebook.sdk: ParsedJSON响应键={body={error={code=200;消息="(#200)用户尚未授权应用程序执行此操作"; type=OAuthException; }; }; code=403;},com.facebook.sdk: ErrorSessionKey=, exirationDate:2014-08-15 08:56:01 0000,刷新日期:2014-06-16 10:10:43 0000,尝试刷新日期:0001-12-30 00:00:00 0000,权限:(status,权限)

用于过帐

-(无效)post:(NSString*)postString{

if (FBSession.activeSession.state == FBSessionStateOpen|| FBSession.activeSession.state == FBSessionStateOpenTokenExtended)
{
    NSArray *permissionsNeeded = @[@"publish_stream"];
    [FBRequestConnection startWithGraphPath:@"/me/permissions"
                          completionHandler:^(FBRequestConnection *connection, id result, NSError *error) {
                              if (!error){
                                  NSDictionary *currentPermissions= [(NSArray *)[result data] objectAtIndex:0];
                                  NSMutableArray *requestPermissions = [[NSMutableArray alloc] initWithArray:@[]];
                                  for (NSString *permission in permissionsNeeded){
                                      if (![currentPermissions objectForKey:permission]){
                                          [requestPermissions addObject:permission];
                                      }
                                  }

                                  if ([requestPermissions count] < 1){
                                      [FBSession.activeSession requestNewPublishPermissions:requestPermissions
                                                                            defaultAudience:FBSessionDefaultAudienceFriends
                                                                          completionHandler:^(FBSession *session, NSError *error) {
                                                                              if (!error) {
                                                                                  [self makeRequestToUpdateStatus:postString];
                                                                              } else {
                                                                                  NSLog(@"%@",[error description]);
                                                                              }
                                                                          }];
                                  } else {
                                      [self makeRequestToUpdateStatus:postString];
                                  }

                              } else {

                                   NSLog(@"%@",[error description]);
                              }
                          }];
}
else
{

}

}

用于登录

如果(!(FBSession.activeSession.state==FBSessionStateOpen||FBSession.activeSession.state==FBSessionStateOpenTokenExded)){NSArray*权限=[[NSArray alloc]initSusObject:@"publish_stream", nil];

    [FBSession openActiveSessionWithPublishPermissions:permissions defaultAudience:FBSessionDefaultAudienceEveryone allowLoginUI:YES completionHandler:^(FBSession *session, FBSessionState status, NSError *error) {

    dispatch_async( dispatch_get_main_queue(), ^{
        [self sessionStateChanged:session
                            state:status
                            error:error];
         });


    }];
 }

else{}

}

共有2个答案

厉高逸
2023-03-14

步骤

 https://developers.facebook.com/apps
 Select Your App then follow steps.

 in **Settings** -> Basic 
  1. add contact Email
  2. Bundle id
  3. Url Scheme Suffix (like Your app name)

 Then Save

 In **Status & Review**

 1.Do you want to make this app and all its live features available to the general public?
  Set Yes

 May be Useful
司立果
2023-03-14

嗯,该消息表示您没有向用户请求正确的权限。

也许你之前请求了更多,因此它仍然适用于你的ABC帐户,因为你当时已经用该帐户“授权”了该应用程序。所以Facebook仍然认为美国广播公司授权该应用程序在墙上发布。

编辑:html" target="_blank">添加以下说明以回应您的评论:

您可以在此处找到具有您可以请求的权限的列表。请注意,使用API v 2.0,如果您请求的基本权限超过几个(在墙上张贴不是这样的基本权限),则需要Facebook“批准”您的应用程序(除非您在2014年4月之前启动了应用程序,在这种情况下,您可能可以继续使用v1.0,直到2015年4月才需要批准)。

可以通过以该用户身份登录、转到设置(菜单右上角)、选择左侧的应用程序并单击应用程序旁边的“x”来取消对您自己的应用程序的授权。

 类似资料:
  • 问题内容: 我正在尝试将图片张贴到Facebook的墙上。我已成功登录并在墙上张贴文字。但是,当我尝试发布图片时,没有任何反应。 我正在使用Android Facebook SDK。 这是我到目前为止的内容: Toast显示8733,这意味着字节数组不为空 注意 Logcat输出一些警告(不是错误): (在彼此下方显示几次。) 我究竟做错了什么? 解决了。 这是我所做的,以使其正常工作: 和辅助方

  • 我有一个网络服务在一个域上工作,比如www.abc.com。我想配置我的服务器,这样来自另一个域的请求(除了来自www.abc.com)都不会被接受。我不应该使用用户身份验证或任何与基于令牌的身份验证相关的东西。所以,我能想到的唯一选择是CORS,但我不知道如何使用它。任何帮助都很好。 我正在使用nodejs和express

  • 问题内容: 我正在尝试在Facebook页面的墙上张贴帖子。我可以使用App Access令牌在用户墙上发布信息。 通过扩展DefaultFacebookClient获得了应用程序访问令牌 有了这个,我可以使用appID和appSecret发布到用户墙。但是,当我尝试发布到Page Wall时,出现错误“用户未授权应用程序执行此操作” 有人可以建议吗? 问题答案: 应用程序访问令牌是最基本的令牌,

  • 问题内容: 我正在存储Facebook用户ID和访问令牌。我可以将此信息发布到所选用户的留言墙上吗?在这里可以找到以下代码:http : //developers.facebook.com/docs/reference/api/post/ 我只是不确定如何用php运行它。 问题答案:

  • 问题内容: 我有一个由Gerrit触发的Jenkins构建,除了之外,我想在所有分支上触发。我应该为此使用什么正则表达式? 问题答案: 使用否定的前瞻对我有用: 应该触发 除 主机 以外的所有内容。

  • 我有一个简单的应用程序,它从firebase加载视频列表,通过单击任何视频,我将通过<code>AVPlayer 但我无法播放在Firebase存储中上传的任何视频。 玩家代码: 另外,我尝试了另一种替代解决方案,方法是在本地下载此视频并从本地播放,但该解决方案也不起作用。 让我知道我是否在视频播放器中犯了任何错误。