如何将AFNetworking/AFOauth2Client与Imgur API一起使用?我只是想能够获得图像信息,无需



我有兴趣将Imgur API集成到我的应用程序中,它指出,为了获得图像信息(基本上是我现在需要的范围),我只需要注册我的应用,不需要使用用户信息或任何东西登录。

很好,我正在使用AFOAuth2Client(特别是这个pull请求,所以它可以与AFNetworking 2.0配合使用)。我有我的客户端密钥和客户端机密,但我似乎不知道如何获取图像。

我尝试以下代码(删除个人API详细信息):

AFOAuth2Client *oauthClient = [AFOAuth2Client clientWithBaseURL:[NSURL URLWithString:@"https://api.imgur.com/"] clientID:@"---" secret:@"---"];
[oauthClient authenticateUsingOAuthWithURLString:@"https://api.imgur.com/oauth2/authorize" parameters:nil success:^(AFOAuthCredential *credential) {
     NSLog(@"Yes");
} failure:^(NSError *error) {
     NSLog(@"No");
}]; 

但我总是输出No。如何正确地进行身份验证,以便调用API获取有关图像的信息?(详见此处。)


正如有人告诉我的那样,我不需要OAuth周期,我在AFNetworking 2.0中尝试了以下操作(但没有成功):

AFHTTPRequestOperationManager *operationManager = [AFHTTPRequestOperationManager manager];
[operationManager POST:@"https://api.imgur.com/3/image/1Nf1quS" parameters:@{@"Authorization": @"Client-ID myactualclientidisremoved"} success:^(AFHTTPRequestOperation *operation, id responseObject) {
    NSLog(@"success");
} failure:^(AFHTTPRequestOperation *operation, NSError *error) {
    NSLog(@"failure");
}];

首先,示例是使用Imgur API v2,它是旧的且不受支持的。您应该使用API v3。

还要注意:

对于公共只读和匿名资源,例如获取图像信息、查找用户评论等。您所需要做的就是在请求中发送一个带有client_id的授权标头。

来自的文档https://api.imgur.com/oauth2——所以你所做的事情并不需要OAuth。

有一些示例Imgur API代码可能会对您有所帮助,列出在https://api.imgur.com/——Android的例子可能与您更相关,因为它使用Java,但与普通的Java应用程序相比,它带来了Android项目的所有开销,这并不奇怪。

相关内容

最新更新