授權網址 https://api.weibo.com/2/oauth2/authorize?client_id=3678297756&redirect_uri=https://www.sina.com&response_type=code 打開後無法取得 code 參數,通常是以下四大原因:
https://www.example.com/callback,請求卻傳 https://www.example.com/callback/ (多斜線) → 會導致授權頁顯示「redirect_uri 不匹配」或直接不回傳 code。www.example.com);若使用 IP 或 localhost,請填 127.0.0.1 或對應 IP。redirect_uri 必須 URLEncode:http%3A%2F%2Fwww.example.com%2Fcallback。User-Agent、Cookie 正常,否則微博可能攔截並不回調。redirect_uri?code=xxxx。error=... 參數(如 error=redirect_uri_mismatch)。String authUrl = "https://api.weibo.com/oauth2/authorize?" +
"client_id=" + CLIENT_ID +
"&redirect_uri=" + URLEncoder.encode(REDIRECT_URI, "UTF-8") +
"&response_type=code" +
"&scope=all" +
"&state=" + UUID.randomUUID().toString(); // 防 CSRF
// 導向 authUrl,用戶授權後回調 REDIRECT_URI?code=xxx&state=xxx
// 後端用 code 換 access_token
逐項核對上述四點,90% 的「拿不到 code」問題都能解決。