与语言环境无关的 FBSDKGraphRequest

Locale-independent FBSDKGraphRequest

我有兴趣从 Facebook 获取用户的性别。设备区域设置为俄语。代码:

let FBRequest = FBSDKGraphRequest(
    graphPath: "me",
    parameters: [
        "fields": "id, gender",
        "locale": "en_US"
    ]
)

FBRequest.startWithCompletionHandler(
    {
        (connection, result, error) -> () in
        if error == nil {
            print(result["gender"])
        }
    }
)

它打印“мужской”而不是 "male"。如何获得忽略设备区域设置的响应?提前致谢!

我遇到了和你一样的问题。我正在尝试更改语言环境,将键和值设置为 "locale":"pt_BR" 或 "locale":"en_US"。都失败了。

我发现解决问题的唯一方法是更改​​文件 "FBSDKGraphRequestConnection.m" 中的以下行(我通过 cocoapods 安装了最新版本的 SDK),方法名为:- (NSString *)urlStringForSingleRequest:(FBSDKGraphRequest *)批次请求:(BOOL)批次

request.parameters[@"locale"] = [NSLocale currentLocale].localeIdentifier;

例如:

request.parameters[@"locale"] = @"en_US";

SDK 获取设备的当前 NSLocale 并覆盖您为其设置的参数。