WatsonApiException: Error: Unauthorized: Access is denied due to invalid credentials , Code: 401
WatsonApiException: Error: Unauthorized: Access is denied due to invalid credentials , Code: 401
我正在尝试根据 docs:
连接到语言翻译器实例
!pip install --upgrade "watson-developer-cloud>=1.4.0"
import json
from watson_developer_cloud import LanguageTranslatorV2
translator = LanguageTranslatorV2(
iam_api_key='***my_api_key***',
url='https://gateway.watsonplatform.net/language-translator/api'
)
models = translator.list_models()
print(json.dumps(models, indent=2))
但是,这会导致:
WatsonApiException: Error: Unauthorized: Access is denied due to invalid credentials , Code: 401 , Information: {'description': 'No credentials supplied.'} , X-dp-watson-tran-id: xxxxxx , X-global-transaction-id: xxxxx
我在服务凭证中找到了 API 密钥。我尝试了 apikey
和 iam_apikey_name
但都导致了相同的错误:
{
“apikey”: “***my_api_key***”,
“iam_apikey_description”: “Auto generated apikey during resource-key operation for Instance - crn:v1:bluemix:public:language-translator:us-south:xxxxxx::“,
“iam_apikey_name”: “auto-generated-apikey-xxxxxx",
“iam_role_crn”: “crn:v1:bluemix:public:iam::::serviceRole:Manager”,
“iam_serviceid_crn”: “crn:v1:bluemix:public:iam-identity::xxxxxx::serviceid:ServiceId-xxxxxx",
“url”: “https://gateway.watsonplatform.net/language-translator/api”
}
我还尝试为 IBM Cloud 创建平台 API 密钥。同样的错误。
我还尝试创建一个访问令牌:
%%bash
curl -k -X POST \
--header "Content-Type: application/x-www-form-urlencoded" \
--header "Accept: application/json" \
--data-urlencode "grant_type=urn:ibm:params:oauth:grant-type:apikey" \
--data-urlencode "apikey=**myapikey**" \
"https://iam.bluemix.net/identity/token"
然后使用 curl 返回的访问令牌:
translator = LanguageTranslatorV2(iam_access_token='**generated_access_token**')
同样的错误:(
我认为这个问题类似于针对 VisualRecognition 发布的 question,但在本例中是针对 LanguageTranslator。
语言翻译器现在有 V3 版本的服务。也许您创建了一个 V3 服务实例?如果是这样,您需要使用 Watson Python SDK 中的 LanguageTranslatorV3
模块。
我正在尝试根据 docs:
连接到语言翻译器实例!pip install --upgrade "watson-developer-cloud>=1.4.0"
import json
from watson_developer_cloud import LanguageTranslatorV2
translator = LanguageTranslatorV2(
iam_api_key='***my_api_key***',
url='https://gateway.watsonplatform.net/language-translator/api'
)
models = translator.list_models()
print(json.dumps(models, indent=2))
但是,这会导致:
WatsonApiException: Error: Unauthorized: Access is denied due to invalid credentials , Code: 401 , Information: {'description': 'No credentials supplied.'} , X-dp-watson-tran-id: xxxxxx , X-global-transaction-id: xxxxx
我在服务凭证中找到了 API 密钥。我尝试了 apikey
和 iam_apikey_name
但都导致了相同的错误:
{
“apikey”: “***my_api_key***”,
“iam_apikey_description”: “Auto generated apikey during resource-key operation for Instance - crn:v1:bluemix:public:language-translator:us-south:xxxxxx::“,
“iam_apikey_name”: “auto-generated-apikey-xxxxxx",
“iam_role_crn”: “crn:v1:bluemix:public:iam::::serviceRole:Manager”,
“iam_serviceid_crn”: “crn:v1:bluemix:public:iam-identity::xxxxxx::serviceid:ServiceId-xxxxxx",
“url”: “https://gateway.watsonplatform.net/language-translator/api”
}
我还尝试为 IBM Cloud 创建平台 API 密钥。同样的错误。
我还尝试创建一个访问令牌:
%%bash
curl -k -X POST \
--header "Content-Type: application/x-www-form-urlencoded" \
--header "Accept: application/json" \
--data-urlencode "grant_type=urn:ibm:params:oauth:grant-type:apikey" \
--data-urlencode "apikey=**myapikey**" \
"https://iam.bluemix.net/identity/token"
然后使用 curl 返回的访问令牌:
translator = LanguageTranslatorV2(iam_access_token='**generated_access_token**')
同样的错误:(
我认为这个问题类似于针对 VisualRecognition 发布的 question,但在本例中是针对 LanguageTranslator。
语言翻译器现在有 V3 版本的服务。也许您创建了一个 V3 服务实例?如果是这样,您需要使用 Watson Python SDK 中的 LanguageTranslatorV3
模块。