2016-08-26 3 views
2

Ich begann nach this github tutorial Es erfolgreich GET alle Einträge und POST Daten in ein Formular. Also nachdem ich vorwärts gegangen bin, wollte ich Suchfilter mit meinem GET-Aufruf hinzufügen. Nach viel Forschung und versuchen verschiedene Ansätze komme ich zu dem Punkt, dass immerSchwerkraftformular API Berechtigung verweigert

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

als meine JSON Antwort, die ich erhalten. Im Anschluss daran habe ich die Suche implementiert, aber es hat nicht funktioniert: https://www.stevenhenty.com/gravity-forms-api/#filter_entries
Indem ich einige PHP-Leute konsultiert habe, haben sie mir gesagt, dass es ein Erlaubnisproblem ist, dass dein Anruf korrekt ist. Also ging ich here und versuchte beide Methoden WordPress-Cookie-Authentifizierung und Externe Clients: Signatur-Authentifizierung aber die Antwort ist die gleiche.

Ich benutze das Cookie NSString *string = [NSString stringWithFormat:@"%@%@?_gf_json_nonce=%@",BaseURLString,route,[[NSUUID UUID] UUIDString]]; Die _gf_json_nonce nach der Suche habe ich, dass es die UDID des Telefons sein wird, so dass das ist, warum ich das benutze.
Wenn ich die andere Signatur verwende, verwende ich sie als NSString *string = [NSString stringWithFormat:@"%@%@?api_key=%@&signature=%@&expires=%@",BaseURLString,route,api_key,signature,expires]; das Ergebnis ist das gleiche.
Deshalb möge, wenn ich mit Suchfiltern jeden dieser Aufforderung verwenden, ich mache die

NSDictionary *params = @{@"key": @"2", 
          @"value": @"[email protected]", 
          @"operator": @"contains"}; 

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


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

Also irgendwelche Ideen, wie es erhalten authentifizieren, so dass der Ruf der Arbeit beginnen kann.

UPDATE
1: Ich habe auch this versucht, aber es hat nicht funktioniert. Ich habe es auch kommentiert.

+0

Geben Sie ein Beispiel für eine erfolgreiche GET-Anforderung mit der Signatur ein, um alle Einträge abzurufen. Und auch eine nicht erfolgreiche Beispielanfrage an denselben Endpunkt, aber mit dem Suchparameter. –

+0

@StevenHenty siehe die aktualisierte Frage. –

Antwort

1

Stellen Sie sicher, das Such param Satz zu einer URL codiert JSON-String wie dieses:

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}]} 

Also, ein bisschen leichter zu lesen, die Suche param etwas würde wie folgt aussehen:

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