【问题标题】:How to authenticate Tinder API using FB Access token and user id如何使用 FB 访问令牌和用户 ID 对 Tinder API 进行身份验证
【发布时间】:2017-10-28 22:01:51
【问题描述】:

我一直在尝试使用 FB 访问令牌和用户 ID 进行 Tinder 身份验证。我已经成功集成了 FB SDK 并获得了详细信息。我遵循了link 中给出的 API 文档。

但是当我调用 Tinder auth API 时,我收到“未经授权的 401”错误。不知道我在这里缺少什么,请在下面找到我使用的代码。

   AFHTTPSessionManager *manager = [[AFHTTPSessionManager alloc]initWithSessionConfiguration:[NSURLSessionConfiguration defaultSessionConfiguration]];
    manager.requestSerializer = [AFJSONRequestSerializer serializer];
    [manager.requestSerializer setValue:@"application/json" forHTTPHeaderField:@"Content-Type"];
    [manager.requestSerializer setValue:accessToken forHTTPHeaderField:@"X-Auth-Token"];
    [manager.requestSerializer setValue:@"Tinder/4.7.1 (iPhone; iOS 9.2; Scale/2.00)" forHTTPHeaderField:@"User-agent"];

    NSString *userId = [[NSUserDefaults standardUserDefaults] valueForKey:FB_LOGGED_IN_USERID_KEY];
    NSDictionary *parameterDic = @{@"facebook_token": accessToken, @"facebook_id": userId};

    [manager POST:TINDER_AUTH_URL parameters:parameterDic progress:nil success:^(NSURLSessionDataTask * _Nonnull task, id  _Nullable responseObject) {
        NSLog(@"success! %@", responseObject);    
    } failure:^(NSURLSessionDataTask * _Nullable task, NSError * _Nonnull error) {
        NSLog(@"error: %@", error);
    }];

【问题讨论】:

    标签: ios facebook api afnetworking-3 tinder


    【解决方案1】:

    您将X-Auth-Token 标头设置为Facebook 令牌accessToken,这可能会导致401 错误。您应该只在以下请求中将其设置为您将在身份验证请求的响应中获得的 Tinder 令牌。

    【讨论】:

    • 我也尝试过,但遇到了同样的错误。根据 API 文档,应该添加它。
    • 实际上,您链接的 API 文档指出:“所有卷曲也必须与标头一起发送(唯一的例外是 /auth 调用不能有 X-Auth-Token 标头)” .您使用什么作为 userId 和 TINDER_AUTH_URL ?
    • 用户 id 是 FB 登录用户的用户 id,TINDER_AUTH_URL 是 api.gotinder.com/auth
    • 谢谢谢谢谢谢!这最终使我解决了这个问题。 x-auth-token 必须设置为您在 auth 调用(使用 FB 令牌)的响应中获得的 Tinder 令牌!
    【解决方案2】:

    更新:

    我在 Github 上创建了一个 repo。你会明白它是如何工作的。更多信息:https://tinder.bhavukjain.com

    /***************/

    您使用了错误的标签:

    像这样设置参数:

    let params:[String:Any] = ["locale":"en-IN",
                               "force_refresh": false,
                               "facebook_token":token,
                               "facebook_id":fbId]
    

    【讨论】:

    • 我查看了代码,但最后验证过程是相同的。使用的网址是api.gotinder.com/user/auth,我尝试不使用'/user'。但是你能简单地告诉认证过程是如何完成的吗?我实现了与您相同的身份验证方法,但我得到了 401。身份验证有依赖关系吗?验证在模拟器上不起作用?
    • 我已经通过上面的代码向你解释过了,同样的事情也在 repo 中实现。但是由于您无法使其工作,因此我共享了整个烘焙代码。现在你必须检查你缺少什么。 facebook 登录无法在模拟器上运行,但 tinder api /auth 将在模拟器上运行。
    猜你喜欢
    • 2018-04-18
    • 1970-01-01
    • 2019-03-02
    • 1970-01-01
    • 2023-01-29
    • 2014-02-11
    • 2023-03-20
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多