Визуальное распознавание Watson - Несанкционировано: доступ запрещен из-за неверных учетных данных - PullRequest
0 голосов
/ 05 марта 2020

Я выполнил шаги переписки (http://www.redbooks.ibm.com/redbooks/pdfs/sg248393.pdf), чтобы запустить небольшое приложение java. Я также создал ключ API, как они его описали.

Теперь я получаю Несанкционированный: доступ запрещен из-за неверных учетных данных .

package vrproject;

//Here you import Watson Java SDK to make it available in your code. 
import com.ibm.watson.developer_cloud.visual_recognition.v3.*;
import com.ibm.watson.developer_cloud.visual_recognition.v3.model.*;

public class ClassifyImage {

public static void main(String[] args) {
    // TODO Auto-generated method stub
    VisualRecognition service = new VisualRecognition(VisualRecognition.VERSION_DATE_2016_05_20); 
    service.setEndPoint("https://gateway.watsonplatform.net/visual-recognition/api");

    //Here you replace "your_api_key_here" by the API Key you created in "Creating 
    //a Watson Visual Recognition service instance and getting the API key"
    service.setApiKey("123apikey");

    //Here you add the URL of your image. The image size should not exceed 2MB.
    String imageURL = new
    String("https://raw.githubusercontent.com/watson-developer-cloud/doc-tutorial-downloads/master/visual-recog nition/fruitbowl.jpg");
    ClassifyImagesOptions options = new ClassifyImagesOptions.Builder().url(imageURL).build(); 
    VisualClassification result = service.classify(options).execute(); System.out.println("Classification Results:");
    System.out.println(result);
}

}

Сообщение об ошибке:

    Mär 05, 2020 7:02:23 PM com.ibm.watson.developer_cloud.service.WatsonService processServiceCall
SCHWERWIEGEND: POST https://gateway.watsonplatform.net/visual-recognition/api/v3/classify?version=2016-05-20&api_key=123apikey, status: 401, error: Unauthorized
Exception in thread "main" com.ibm.watson.developer_cloud.service.exception.UnauthorizedException: Unauthorized: Access is denied due to invalid credentials
    at com.ibm.watson.developer_cloud.service.WatsonService.processServiceCall(WatsonService.java:418)
    at com.ibm.watson.developer_cloud.service.WatsonService$1.execute(WatsonService.java:180)
    at vrproject.ClassifyImage.main(ClassifyImage.java:22)

Знаете ли вы, почему я получаю эти ошибки? Я не уверен, что версия слишком старая, я просто использовал версию из книги.

Ответы [ 3 ]

2 голосов
/ 06 марта 2020

Руководство было опубликовано в 2017 году, механизм аутентификации, который он показывает, устарел, а используемый SDK устарел. Вам необходимо изменить код в соответствии с текущей документацией API: https://cloud.ibm.com/apidocs/visual-recognition/visual-recognition-v3?code=java#classify -изображения

Где на момент написания примера кода было

IamAuthenticator authenticator = new IamAuthenticator("{apikey}");
VisualRecognition visualRecognition = new VisualRecognition("2018-03-19", authenticator);
visualRecognition.setServiceUrl("{url}");

InputStream imagesStream = new FileInputStream("./fruitbowl.jpg");
ClassifyOptions classifyOptions = new ClassifyOptions.Builder()
  .imagesFile(imagesStream)
  .classifierIds(Arrays.asList("food"))
  .build();
ClassifiedImages result = visualRecognition.classify(classifyOptions).execute().getResult();
System.out.println(result);x

где ваша зависимость SDK будет для

<dependency>
  <groupId>com.ibm.watson</groupId>
  <artifactId>ibm-watson</artifactId>
  <version>8.3.0</version>
</dependency>


1 голос
/ 06 марта 2020

Вы не используете правильную конечную точку обслуживания. В документации, на которую вы ссылаетесь, отображается URL-адрес конечной точки: https://gateway-a.watsonplatform.net/visual-recognition/api

Вы используете https://gateway.watsonplatform.net/visual-recognition/api

0 голосов
/ 06 марта 2020

Вы можете получить API_KEY и Endpoint на странице сервиса Watson Visual Recognition.

На службе визуального распознавания Управление страницей под учетными данными вы должны увидеть

  • Ключ API
  • URL

Формат URL будет примерно таким:

https://api.REGION.visual-recognition.watson.cloud.ibm.com/instances/INSTANCEID

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...