下面是一个使用 Java 编写的示例代码,展示如何通过 OAuth 2.0 访问令牌授权方式在 GitHub 上访问 API:
import okhttp3.OkHttpClient;
import okhttp3.Request;
import okhttp3.Response;
import java.io.IOException;
public class GitHubAPIExample {
public static void main(String[] args) throws IOException {
// 替换为你的应用程序信息
String clientId = "YOUR_CLIENT_ID";
String clientSecret = "YOUR_CLIENT_SECRET";
String accessTokenUrl = "https://github.com/login/oauth/access_token";
String apiUrl = "https://api.github.com/user";
// 构建授权 URL
String authUrl = "https://github.com/login/oauth/authorize?client_id=" + clientId;
// 获取访问令牌
OkHttpClient httpClient = new OkHttpClient();
Request accessTokenRequest = new Request.Builder()
.url(accessTokenUrl)
.post(okhttp3.RequestBody.create(null, ""))
.addHeader("Accept", "application/json")
.build();
Response accessTokenResponse = httpClient.newCall(accessTokenRequest).execute();
// 解析访问令牌响应中的 JSON 数据
ObjectMapper mapper = new ObjectMapper();
JsonNode responseJson = mapper.readTree(accessTokenResponse.body().string());
// 提取访问令牌
String accessToken = responseJson.get("access_token").asText();
// 使用访问令牌进行 API 请求
Request apiRequest = new Request.Builder()
.url(apiUrl)
.addHeader("Authorization", "Bearer " + accessToken)
.build();
Response apiResponse = httpClient.newCall(apiRequest).execute();
System.out.println(apiResponse.body().string());
}
}
在此示例中,你需要将 YOUR_CLIENT_ID 和 YOUR_CLIENT_SECRET 替换为你自己的 GitHub 应用程序的客户端 ID 和客户端密钥。
请注意,这只是一个简单的示例代码,实际应用可能需要更多的错误处理和参数验证。
内容由零声教学AI助手提供,问题来源于学员提问




