oauthRequestToken method
Twitterにリクエストトークンを要求する
Implementation
Future<HttpClientResponse> oauthRequestToken() async {
DateTime dtNow = DateTime.now();
int unixTimeSec = (dtNow.millisecondsSinceEpoch / 1000).round();
var uuid = Uuid().v4();
var parameters = {
"oauth_callback": _callBackUrl,
"oauth_consumer_key": _apiKey,
"oauth_signature_method": _signatureMethod,
"oauth_timestamp": unixTimeSec.toString(),
"oauth_nonce": uuid.toString(),
"oauth_version": "1.0"
};
// うまく行く時も、常に空だったような気がする。。。
// このリクエストによって取得するものなので、ここでは空にすることが必要?
// キーごと空にしてもうまく行くんじゃないの...
// TODO: 調査
var secretByRequest = "";
var signature = _createSignature(
_apiSecret, secretByRequest, "POST", parameters, TwitterAPIs.URL_OAUTH_REQUEST_TOKEN);
if (signature != null) {
parameters["oauth_signature"] = signature;
}
var requestParams = _createRequestParams(parameters);
// ex. "oauth_callback=yuma25689.ToriaezuTukutterZero%3A%2F%2F,oauth_consumer_key=xjpku6jywPx6uyfTczlpNXEyE,oauth_nonce=6134F0AE-0BF7-44E0-B76B-13BD807EE4D7,oauth_signature=u8KQMiIPn3aHGhGwdIjRjT4%2BUEs%3D,oauth_signature_method=HMAC-SHA1,oauth_timestamp=1628826747,oauth_version=1.0"
var requestUrl = Uri.parse(TwitterAPIs.URL_OAUTH_REQUEST_TOKEN);
var client = HttpClient();
var ret = client.postUrl(requestUrl).then((HttpClientRequest request) {
request.headers.add("Authorization", "OAuth " + requestParams);
// Then call close.
return request.close();
});
return ret;
}