Oauth2 重定向到无效端口 8080
Oauth2 redirection to invalid port 8080
我的需求是动态给Gmail用户添加图片签名。
仅供参考:以下是我遵循的过程
在 google 控制台中创建了项目
按以下方式创建了 Oauth 客户端 ID
应用程序类型:网络
授权JavaScript来源:http://localhost
授权的重定向 URI:http://localhost:3000
下载为client_request.json
代码如下
'''
from apiclient import discovery
from googleapiclient.discovery import build
from googleapiclient import discovery
from httplib2 import Http
from oauth2client import file, client, tools
from oauth2client.tools import argparser, run_flow
args = argparser.parse_args()
from oauth2client.file import Storage
SCOPES = 'https://www.googleapis.com/auth/gmail.settings.basic'
STORAGE = Storage('credentials.storage')
credentials = STORAGE.get()
creds =None
args.noauth_local_webserver = True
http = httplib2.Http()
if not creds or creds.invalid:
flow = client.flow_from_clientsecrets('client_secret.json', SCOPES)
creds = tools.run_flow(flow, STORAGE,http=http)
GMAIL = discovery.build('gmail', 'v1', http=creds.authorize(Http()))
addresses = GMAIL.users().settings().sendAs().list(userId='me',
fields='sendAs(isPrimary,sendAsEmail)').execute().get('sendAs')
for address in addresses:
if address.get('isPrimary'):
break
signature = {'signature':'<img src="https://server:8000/test.png" alt="asaa" width="100" height="100">'}
rsp = GMAIL.users().settings().sendAs().patch(userId='me',
sendAsEmail=address['sendAsEmail'], body=signature).execute()
print("Signature changed to '%s'" % rsp['signature']) '''
我遇到了两个问题:
1) 在我 运行 上面的代码之后它生成了下面的 URL
It is pointing to 8080 inspite specifying 3000 as redirection port
2) I am unable to generate dynamic URL which should be unique for every web request
请提出前进的方向
谢谢
您从 redirect_uri=http://localhost:8080
发送的重定向 uri 必须与您在 google 开发者控制台中添加的重定向 uri 之一完全匹配。
错误消息准确地告诉您您的应用程序正在发送哪个 uri 作为其重定向 uri。你只需要添加它。
It is pointing to 8080 in spite specifying 3000 as redirection port
您仅在 Google 开发者控制台中指定您 将 从 3000 发送,但您的应用程序似乎是从 8080 发送。
解决方案:将 http://localhost:8080
添加到 google 开发人员控制台作为有效的重定向 uri,或者将您的应用程序更改为从您已添加到 google 开发人员的 http://localhost:3000
发送控制台。
我的需求是动态给Gmail用户添加图片签名。
仅供参考:以下是我遵循的过程
在 google 控制台中创建了项目
按以下方式创建了 Oauth 客户端 ID
应用程序类型:网络
授权JavaScript来源:http://localhost
授权的重定向 URI:http://localhost:3000
下载为client_request.json
代码如下
'''
from apiclient import discovery
from googleapiclient.discovery import build
from googleapiclient import discovery
from httplib2 import Http
from oauth2client import file, client, tools
from oauth2client.tools import argparser, run_flow
args = argparser.parse_args()
from oauth2client.file import Storage
SCOPES = 'https://www.googleapis.com/auth/gmail.settings.basic'
STORAGE = Storage('credentials.storage')
credentials = STORAGE.get()
creds =None
args.noauth_local_webserver = True
http = httplib2.Http()
if not creds or creds.invalid:
flow = client.flow_from_clientsecrets('client_secret.json', SCOPES)
creds = tools.run_flow(flow, STORAGE,http=http)
GMAIL = discovery.build('gmail', 'v1', http=creds.authorize(Http()))
addresses = GMAIL.users().settings().sendAs().list(userId='me',
fields='sendAs(isPrimary,sendAsEmail)').execute().get('sendAs')
for address in addresses:
if address.get('isPrimary'):
break
signature = {'signature':'<img src="https://server:8000/test.png" alt="asaa" width="100" height="100">'}
rsp = GMAIL.users().settings().sendAs().patch(userId='me',
sendAsEmail=address['sendAsEmail'], body=signature).execute()
print("Signature changed to '%s'" % rsp['signature']) '''
我遇到了两个问题:
1) 在我 运行 上面的代码之后它生成了下面的 URL
It is pointing to 8080 inspite specifying 3000 as redirection port
2) I am unable to generate dynamic URL which should be unique for every web request
请提出前进的方向
谢谢
您从 redirect_uri=http://localhost:8080
发送的重定向 uri 必须与您在 google 开发者控制台中添加的重定向 uri 之一完全匹配。
错误消息准确地告诉您您的应用程序正在发送哪个 uri 作为其重定向 uri。你只需要添加它。
It is pointing to 8080 in spite specifying 3000 as redirection port
您仅在 Google 开发者控制台中指定您 将 从 3000 发送,但您的应用程序似乎是从 8080 发送。
解决方案:将 http://localhost:8080
添加到 google 开发人员控制台作为有效的重定向 uri,或者将您的应用程序更改为从您已添加到 google 开发人员的 http://localhost:3000
发送控制台。