Wrike Redirect URI无效咨询:API连接时重定向页面报错
我之前帮不少开发者排查过这个问题,Wrike对重定向URI的校验确实挺严格的,咱们一步步来定位解决:
先核对Wrike开发者控制台的配置
这是最常见的问题!你在Wrike开发者平台注册应用时填写的重定向URI,必须和你实际跳转的回调地址完全一致——包括HTTP/HTTPS协议、完整域名、路径,甚至末尾的斜杠都不能差。比如你配置的是https://yourdomain.com/wrike-callback,就不能写成http://yourdomain.com/wrike-callback(协议错了),也不能少写端口号(本地测试时比如http://localhost:3000/callback,端口必须精确匹配)。检查授权请求里的redirect_uri参数
构造授权跳转URL的时候,要确保redirect_uri参数和控制台配置的内容完全一致,手动拼接的话记得用http_build_query()或者urlencode()处理特殊字符(虽然多数HTTP库会自动处理,但手动写容易出错)。比如下面这个正确的PHP示例:$authUrl = 'https://login.wrike.com/oauth2/authorize?' . http_build_query([ 'client_id' => '你的客户端ID', 'redirect_uri' => 'https://yourdomain.com/wrike-callback', // 和控制台配置丝毫不差 'response_type' => 'code', 'scope' => 'read_write' ]);调试回调页面的参数获取逻辑
别着急直接拿$_GET['code'],先在回调页面打印整个$_GET数组看看:var_dump($_GET);如果Wrike返回了
error或error_description参数,那就能直接看到具体的不匹配原因;如果连code都没出现,说明授权流程根本没走到回调这一步,大概率还是URI配置的问题。避开相对路径和动态变量坑
Wrike要求重定向URI必须是绝对固定路径,不能用相对路径(比如/callback不行),也不能在URI里加动态参数(比如https://yourdomain.com/callback?user=123,额外的参数会导致不匹配)。考虑配置缓存延迟
有时候你在Wrike控制台修改了重定向URI后,平台的配置可能有几分钟的缓存同步时间,别刚改完就急着测试,等5-10分钟再试一次。
内容的提问来源于stack exchange,提问作者jsf

