3 namespace app\Github\Fetch
;
5 use app\Github\Exception\TokenFetchFailed
;
8 use http\Client\Request
;
11 class Token
extends Fetch
13 function getRequest() {
14 $request = new Request("POST", "https://github.com/login/oauth/access_token", [
15 "Accept" => "application/json",
17 $request->getBody()->append(
19 "client_id" => $this->args
["id"],
20 "client_secret" => $this->args
["secret"],
21 "code" => $this->args
["code"]
27 function getException($message, $code, $previous = null) {
28 return new TokenFetchFailed($message, $code, $previous);
31 function getCacheKey() {
32 return "access_token";
35 function getStorage(&$ttl = null) {
36 /* do not cache externally */