【问题标题】:Publishing Facebook Action through new graph通过新图表发布 Facebook Action
【发布时间】:2026-01-15 15:15:01
【问题描述】:

我只是尝试使用 iOS SDK/新图表向 Facebook 发布操作。

问题是我不断收到警告说“至少需要采取行动 一个参考'它是无效的,因为它没有指定任何参考 对象。必须至少指定以下属性之一: 事件、朋友、最爱、提醒。

这是我当前的代码:

    FBSDKAccessToken *token = [FBSDKAccessToken currentAccessToken];
    FBSDKGraphRequestConnection *connection = [[FBSDKGraphRequestConnection alloc] init];
    NSMutableDictionary<FBGraphObject> *action = [FBGraphObject graphObject];
   NSMutableDictionary<FBGraphObject> *course = [FBGraphObject openGraphObjectForPost];
    course[@"og:title"] = @"My Event";
    course[@"og:type"] = @"myEventApp:event";
    course[@"og:url"] = [NSURL URLWithString:@"http://www.facebook.com"];
    course[@"og:description"]  = @"Yaba daba doo";
    action[@"course"] = course;

    FBSDKGraphRequest *request = [[FBSDKGraphRequest alloc] initWithGraphPath:@"me/myEventApp:add" parameters:action tokenString:token.tokenString version:@"v2.3" HTTPMethod:@"POST"];

    [connection addRequest:request completionHandler:^(FBSDKGraphRequestConnection *connection, id result, NSError *error) {
                                if(error)
                                    NSLog(@"%@", error);
                                else
                                    NSLog(@"%@", result);

                            }];

    [connection start];

【问题讨论】:

  • 一个动作没有 og:url。一个对象,一个动作需要引用一个对象。您应该将 action[@"og:url"] 更改为 action[@"{my_object_type}"],将 {my_object_type} 替换为可以进入您的操作的对象。
  • 更新了我的代码,现在我没有收到 UIAlertView 错误,而是这个错误:Error Domain=NSURLErrorDomain Code=-1002 "unsupported URL" UserInfo=0x170866400 {NSLocalizedDescription=unsupported URL, NSUnderlyingError=0x1706457f0 "unsupported URL"} 也试过 course[@"og:url"] = @"facebook.com"
  • 还注意到 FBSDKLog: Unsupported FBSDKGraphRequest attachment:{ data = { }; "fbsdk:create_object" = 1; "og:description" = "Yaba daba doo"; "og:image" = "fbstatic-a.akamaihd.net/images/devsite/attachment_blank.png"; "og:title" = "我的活动"; "og:type" = "myEventApp:event"; "og:url" = "facebook.com"; },跳过。
  • 好吧,facebook.com 不是该 og 对象的有效 url。

标签: ios objective-c facebook facebook-graph-api


【解决方案1】:

发布数据: 您应该添加权限@“publish_actions”

试试这个代码:

 if ([[FBSDKAccessToken currentAccessToken] hasGranted:@"publish_actions"]) {
        // TODO: publish content.
        NSLog(@"published...");
    } else {
        FBSDKLoginManager *loginManager = [[FBSDKLoginManager alloc] init];
        [loginManager logInWithPublishPermissions:@[@"publish_actions"] handler:^(FBSDKLoginManagerLoginResult *result, NSError *error) {
            //TODO: process error or result.
        }];
    }

【讨论】:

    最近更新 更多