与区域无关的FBSDKGraphRequest

时间:2016-01-18 14:33:12

标签: ios swift facebook-ios-sdk

我有兴趣从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"])
        }
    }
)

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

1 个答案:

答案 0 :(得分:1)

我遇到了和你一样的问题。我正在尝试更改区域设置,将键和值设置为“locale”:“pt_BR”或“locale”:“en_US”。两者都失败了。

我发现要解决的唯一方法是在名为“ - (NSString *)urlStringForSingleRequest:(FBSDKGraphRequest *)”的方法中更改文件“FBSDKGraphRequestConnection.m”(我在最后一个版本SDK中通过cocoapods安装)下面的行。请求forBatch:(BOOL)forBatch

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

例如:

request.parameters [@“locale”] = @“en_US”;

SDK获取设备的当前NSLocale并覆盖您放在其上的参数。