【问题标题】:Gravity form API Permission denied重力形式API权限被拒绝
【发布时间】:2016-08-26 07:35:35
【问题描述】:

我开始关注this github tutorial 它成功地将GET 所有条目和POST 数据添加到表单中。 所以在那之后,当我继续前进时,我想在我的 GET 调用中添加搜索过滤器。经过大量研究和尝试不同的方法后,我得到了我总能得到的结论

{
status: 401,
response: "Permission denied"
}

作为我的 JSON 响应。在此之后,我实现了搜索,但没有成功:https://www.stevenhenty.com/gravity-forms-api/#filter_entries
通过咨询一些 php 人,他们告诉我这是权限问题,您的调用是正确的。所以我去了here 并尝试了两种方法 WordPress Cookie 身份验证外部客户端:签名身份验证,但响应是相同的。

我正在使用Cookie NSString *string = [NSString stringWithFormat:@"%@%@?_gf_json_nonce=%@",BaseURLString,route,[[NSUUID UUID] UUIDString]]; _gf_json_nonce 搜索后我得到它是手机的 UDID,所以这就是我使用它的原因。
如果我使用另一个签名,我将其用作 NSString *string = [NSString stringWithFormat:@"%@%@?api_key=%@&signature=%@&expires=%@",BaseURLString,route,api_key,signature,expires];结果是一样的。
因此,如果我想将此调用中的任何一个与搜索过滤器一起使用,我正在这样做

NSDictionary *params = @{@"key": @"2",
                             @"value": @"my@email.com",
                             @"operator": @"contains"};

    NSMutableDictionary *modify = [NSMutableDictionary new];
    [modify  setObject:params forKey:@"field_filters"];


    [manager GET:stringURL  parameters:modify progress:nil success:^(NSURLSessionTask *task, id responseObject) {

所以任何想法如何让它进行身份验证以便调用可以开始工作。

更新
1:我也试过this,但没用。我也评论过。

【问题讨论】:

  • 请使用签名发布成功的 GET 请求示例以检索所有条目。还有一个对同一端点但使用搜索参数的不成功请求示例。
  • @StevenHenty 查看更新后的问题。

标签: php ios objective-c wordpress gravity-forms-plugin


【解决方案1】:

确保您将搜索参数设置为 URL 编码的 JSON 字符串,如下所示:

http://yourdomain/gravityformsapi/forms/3/entries/?api_key=[snip]&signature=[snip]%3D&expires=[snip]&search={%22field_filters%22:%20[{%22key%22:%20%222%22,%20%22value%22%20:%20%@gmailcom%22,%20%22operator%22%20:%20%22contains%22}]}

所以,更容易阅读,搜索参数看起来像这样:

{
  "field_filters": [
    {
      "key": "2",
      "value": "@gmail.com",
      "operator": "contains"
    }
  ]
}

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2019-12-31
    • 1970-01-01
    • 2022-08-03
    • 2015-08-30
    • 2016-06-02
    • 1970-01-01
    相关资源
    最近更新 更多