我真的在这个问题上摸不着头脑。我正在使用Pocket API允许用户从我的应用程序中存档 Pocket 文章,但每当我尝试使用以下代码执行此操作时,我都会收到此错误:
Error Domain=PocketSDK Code=400 "无效请求,请参考 API 文档" UserInfo=0xc17d3b0 {NSLocalizedDescription=无效请求,请参考 API 文档}
代码:
NSDictionary *arguments = @{@"action": @"archive",
@"item_id": articleID};
[[PocketAPI sharedAPI] callAPIMethod:@"send" withHTTPMethod:PocketAPIHTTPMethodPOST arguments:arguments handler:^(PocketAPI *api, NSString *apiMethod, NSDictionary *response, NSError *error) {
if (!error) {
NSLog(@"Archived article.");
}
}];
究竟哪一部分是不正确的?我没有向 API 发布发送方法吗?
编辑:我什至把它改成了@"action"
上面@"actions"
的 NSDictionary 并提供它,它返回时没有错误,但不会影响 Pocket 网站上的它......
编辑 2:根据 Joseph Chen 的回复,我将代码更改为以下内容:
// Create data to pass to the Pocket API (a JSON array of actions)
NSError *error;
NSArray *actions = @[@{@"action": @"archive",
@"item_id": articleID}];
NSData *actionsAsJSONData = [NSJSONSerialization dataWithJSONObject:actions options:kNilOptions error:&error];
NSString *actionsAsJSONString = [[NSString alloc] initWithData:actionsAsJSONData encoding:NSUTF8StringEncoding];
NSDictionary *arguments = @{@"actions": actionsAsJSONString};
[[PocketAPI sharedAPI] callAPIMethod:@"send" withHTTPMethod:PocketAPIHTTPMethodPOST arguments:arguments handler:^(PocketAPI *api, NSString *apiMethod, NSDictionary *response, NSError *error) {
if (!error) {
NSLog(@"%@", response);
}
else {
NSLog(@"%@", error);
}
}];
返回:
action_results" = (
1
);
status = 1;
然而,当我去网站并登录时,我“存档”的文章仍然盯着我看,没有存档。