gpt4 book ai didi

ios 非对话 Facebook 分享失败,没有错误,也没有反馈

转载 作者:行者123 更新时间:2023-12-01 16:29:03 26 4
gpt4 key购买 nike

我已经在我的 ios 应用程序中进行了一年的 facebook 共享,并且已经升级(也就是完全重写)以使用最新的 api(4.7.x),现在共享根本不起作用。我检查我是否具有 publish_actions 权限(在调用此方法之前我已在打开的图形设置、操作类型、功能中进行了“明确共享”检查。我正在验证内容(我没有收到错误)并且有委托(delegate),它的任何方法都不会被调用。

-(void)shareWithFacebook:(NSString *)message
{
if ([[FBSDKAccessToken currentAccessToken] hasGranted:@"publish_actions"])
{
NIDINFO(@"Facebook sharing has publish_actions permission");
}
else
{
FBSDKLoginManager *loginManager = [[FBSDKLoginManager alloc] init];
[loginManager logInWithPublishPermissions:@[@"publish_actions"]
handler:^(FBSDKLoginManagerLoginResult *result, NSError *error)
{
NIDERROR(@"Facebook sharing getting publish_actions permission failed: %@", error);
}
];
}

NSMutableDictionary *properties = [NSMutableDictionary dictionaryWithDictionary: @{
@"og:type": @"article",
@"og:title": @"Bloc",
@"og:description": message,
@"og:url": @"http://getonbloc.com/download"
}];




FBSDKShareOpenGraphObject *object = [FBSDKShareOpenGraphObject objectWithProperties:properties];

// Create the action
FBSDKShareOpenGraphAction *action = [FBSDKShareOpenGraphAction actionWithType:@"mynamespace:Share" object:object key:@"article"];
[action setString:@"true" forKey:@"fb:explicitly_shared"];

// Create the content
FBSDKShareOpenGraphContent *content = [[FBSDKShareOpenGraphContent alloc] init];
content.action = action;
content.previewPropertyName = @"article";

// Share the content
FBSDKShareAPI *shareAPI = [[FBSDKShareAPI alloc] init];
shareAPI.shareContent = content;
shareAPI.delegate = self;

NSError *error;
if([shareAPI validateWithError:&error] == NO)
{
NIDERROR(@"Facebook sharing content failed: %@", error);
}

[shareAPI share];
}

#pragma mark - FBSDKSharingDelegate

- (void) sharer:(id<FBSDKSharing>)sharer didCompleteWithResults:(NSDictionary *)results
{
NIDINFO(@"Facebook sharing completed: %@", results);
}

- (void) sharer:(id<FBSDKSharing>)sharer didFailWithError:(NSError *)error
{
NIDERROR(@"Facebook sharing failed: %@", error);
}

- (void) sharerDidCancel:(id<FBSDKSharing>)sharer
{
NIDINFO(@"Facebook sharing cancelled.");
}

我有登录工作,可以很好地获取照片。我根本没有从 facebook api 得到任何反馈,也没有发布任何内容。我在这里做了什么特别愚蠢的事情吗?

最佳答案

只是一种可能性,但我发现 Facebook 集成变得不方便,因为我发现每次我通过 hasGranted: 检查当前 token 以获得授予权限时,即使我在几分钟前获得了许可,或者从之前的应用程序启动中获得了许可,它也几乎总是失败。

似乎在您的代码中,如果未授予权限,您将尝试登录并再次获得权限。但是当该 block 返回时,无论是否授予实际权限,都会引发错误。相反,如果成功,您应该继续共享。

关于ios 非对话 Facebook 分享失败,没有错误,也没有反馈,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33175479/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com