Gravity表单API权限被拒绝

时间:2016-08-26 07:35:36

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

我开始关注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但是没有用。我也评论过它。

1 个答案:

答案 0 :(得分: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"
    }
  ]
}