我在Google Developer Console中创建了客户端ID和API密钥,我在谷歌控制台和配置文件中给出了相同的网址
这是我的网址:
我收到错误
- 这是一个错误。
醇>错误:invalid_request
redirect_uri的参数值无效:Uri必须包含 可打印的ASCII字符: 本地主机:81 / moviemuseui /公共/登录/ checkLogin
如何解决这个问题,我找不到问题。
答案 0 :(得分:0)
URI语法中不允许使用排除的US-ASCII字符:
control = <US-ASCII coded characters 00-1F and 7F hexadecimal>
space = <US-ASCII coded character 20 hexadecimal>
delims = "<" | ">" | "#" | "%" | <">
在URI语法中也可能允许使用某些字符,但可能会导致问题。
"{" | "}" | "|" | "\" | "^" | "[" | "]" | "`"
以下字符绝对是为查询组件保留的,它们用于协议中的特定含义。
";" | "/" | "?" | ":" | "@" | "&" | "=" | "+" | "$" | ","
答案 1 :(得分:0)
您不需要对所有内容进行网址编码。首次调用身份验证只会向用户显示一个页面,供他们批准您的访问权限。这是一个普通的HTTP GET,你可以在任何webbrowser中测试它。
以下作品:
https://accounts.google.com/o/oauth2/auth?client_id= {的clientid} .apps.googleusercontent.com&安培; REDIRECT_URI =瓮:IETF:WG:OAuth的:2.0:OOB&安培;范围= https://www.googleapis.com/auth/userinfo.profile+https://www.googleapis.com/auth/userinfo.email&response_type=code
这个添加你的重定向uri,记住重定向uri应该指向你想要处理身份验证的页面。
https://accounts.google.com/o/oauth2/auth?client_id= {clientid} .apps.googleusercontent.com&amp; redirect_uri = http:// localhost:81 / moviemuseui / public / login / checkLogin / Filename.php&amp; scope = https://www.googleapis.com/auth/userinfo.profile+https://www.googleapis.com/auth/userinfo.email&response_type=code
我有一个教程,解释了如何将调用放在一起:Google 3 legged oauth2 flow
问题:如果您使用的是Google-api-php-client,为什么要手动构建?
您的错误Redirect_URI:必须与您要处理身份验证的网页相匹配。例如:http:// localhost / google-api-php-client-samples / oauth2.php 它应该在开发人员控制台中设置,并在脚本中使用。
答案 2 :(得分:0)
您的重定向uri不能包含空格“”
答案 3 :(得分:-1)
只需检查URI
是否不包含任何空格。我也遇到了同样的问题,并通过删除最后的空格来解决。