40 lines
1.2 KiB
GDScript
40 lines
1.2 KiB
GDScript
class_name TwitterProvider
|
|
extends AuthProvider
|
|
|
|
var request_token_endpoint: String = "https://api.twitter.com/oauth/access_token?oauth_callback="
|
|
|
|
var oauth_header: Dictionary = {
|
|
oauth_callback="",
|
|
oauth_consumer_key="",
|
|
oauth_nonce="",
|
|
oauth_signature="",
|
|
oauth_signature_method="HMAC-SHA1",
|
|
oauth_timestamp="",
|
|
oauth_version="1.0"
|
|
}
|
|
|
|
func _init(client_id: String,client_secret: String):
|
|
randomize()
|
|
set_client_id(client_id)
|
|
set_client_secret(client_secret)
|
|
|
|
self.oauth_header.oauth_consumer_key = client_id
|
|
self.oauth_header.oauth_nonce = Time.get_ticks_usec()
|
|
self.oauth_header.oauth_timestamp = Time.get_ticks_msec()
|
|
|
|
|
|
self.should_exchange = true
|
|
self.redirect_uri = "https://twitter.com/i/oauth2/authorize?"
|
|
self.access_token_uri = "https://api.twitter.com/2/oauth2/token"
|
|
self.provider_id = "twitter.com"
|
|
self.params.redirect_type = "redirect_uri"
|
|
self.params.response_type = "code"
|
|
self.params.scope = "users.read"
|
|
self.params.state = str(randf_range(0, 1))
|
|
|
|
func get_oauth_params() -> String:
|
|
var params: PackedStringArray = []
|
|
for key in self.oauth.keys():
|
|
params.append(key+"="+self.oauth.get(key))
|
|
return "&".join(params)
|