我正在将Facebook sdk从3.x升级到4.x并且Facebook文档清楚地表明需要单独请求读取权限和发布权限。当应用程序请求读取权限时,用户登录并授予权限,但是当应用程序请求发布权限时,即使用户已经拥有访问令牌,它也会使用户再次登录?有没有办法只是请求权限而不必强迫用户再次登录?
Facebook android sdk允许这样做而无需登录两次,但iOS似乎完全阻止了这种行为,这似乎很疯狂。如果应用程序实现需要集成的读取和发布权限才能工作,那么强制用户登录两次只会产生不必要的摩擦和糟糕的用户体验。
答案 0 :(得分:0)
我已经浏览了名为FBSDKInternalUtility.h,
的SDK类,其中我们有一个方法
+ (BOOL)areAllPermissionsReadPermissions:(NSSet *)permissions
{
for (NSString *permission in permissions) {
if ([[self class] isPublishPermission:permission]) {
return NO;
}
}
return YES;
}
+ (BOOL)isPublishPermission:(NSString *)permission
{
return [permission hasPrefix:@"publish"] ||
[permission hasPrefix:@"manage"] ||
[permission isEqualToString:@"ads_management"] ||
[permission isEqualToString:@"create_event"] ||
[permission isEqualToString:@"rsvp_event"];
}
他们在两种情况下检查以下权限,虽然通过NSSet
命令的权限变得不同,所以下面检查第一个字符串并返回NO。那么我做了什么评论如下所述。
+ (BOOL)areAllPermissionsReadPermissions:(NSSet *)permissions
{
//for (NSString *permission in permissions) {
// if ([[self class] isPublishPermission:permission]) {
// return NO;
// }
//}
return YES;
}
我不确定我所做的改变是否有效,但我可以实现我想要的。很高兴。 如果您有任何改变建议,请告诉我。