有没有办法在没有 Python 中的 oauth2client 库的情况下使用 Google 的 Indexing API?
这段代码对我来说运行得很好
from oauth2client.service_account import ServiceAccountCredentials
import httplib2
SCOPES = [ "https://www.googleapis.com/auth/indexing" ]
ENDPOINT = "https://indexing.googleapis.com/v3/urlNotifications:publish"
# service_account_file.json is the private key that you created for your service account.
JSON_KEY_FILE = "service_account_file.json"
credentials = ServiceAccountCredentials.from_json_keyfile_name(JSON_KEY_FILE, scopes=SCOPES)
http = credentials.authorize(httplib2.Http())
# Define contents here as a JSON string.
# This example shows a simple update request.
# Other types of requests are described in the next step.
content = """{
\"url\": \"http://example.com/jobs/42\",
\"type\": \"URL_UPDATED\"
}"""
response, content = http.request(ENDPOINT, method="POST", body=content)
但是,我想用 Python 中的 Requests 模块来做到这一点。
response= requests.post(ENDPOINT,data=content)
运行此代码会返回以下错误:
{'error': {'code': 401, 'message': 'Request is missing required authentication credential. Expected OAuth 2 access token, login cookie or other valid authentication credential. See https://developers.google.com/identity/sign-in/web/devconsole-project.', 'status': 'UNAUTHENTICATED', 'details': [{'@type': 'type.googleapis.com/google.rpc.ErrorInfo', 'reason': 'CREDENTIALS_MISSING', 'domain': 'googleapis.com', 'metadata': {'service': 'indexing.googleapis.com', 'method': 'google.indexing.v3.UrlService.PublishUrlNotification'}}]}}
有没有人可以解决这个问题?