@@ -31,21 +31,17 @@ function run() {
31
31
*/
32
32
function reset ( ) {
33
33
getService_ ( ) . reset ( ) ;
34
- PropertiesService . getUserProperties ( ) . deleteProperty ( 'code_challenge' ) ;
35
- PropertiesService . getUserProperties ( ) . deleteProperty ( 'code_verifier' ) ;
36
34
}
37
35
38
36
/**
39
37
* Configures the service.
40
38
*/
41
39
function getService_ ( ) {
42
- pkceChallengeVerifier ( ) ;
43
40
var userProps = PropertiesService . getUserProperties ( ) ;
44
41
return OAuth2 . createService ( 'Twitter' )
45
42
// Set the endpoint URLs.
46
43
. setAuthorizationBaseUrl ( 'https://twitter.com/i/oauth2/authorize' )
47
- . setTokenUrl (
48
- 'https://api.twitter.com/2/oauth2/token?code_verifier=' + userProps . getProperty ( 'code_verifier' ) )
44
+ . setTokenUrl ( 'https://api.twitter.com/2/oauth2/token' )
49
45
50
46
// Set the client ID and secret.
51
47
. setClientId ( CLIENT_ID )
@@ -61,10 +57,8 @@ function getService_() {
61
57
// Set the scopes to request (space-separated for Twitter services).
62
58
. setScope ( 'users.read tweet.read offline.access' )
63
59
64
- // Add parameters in the authorization url
65
- . setParam ( 'response_type' , 'code' )
66
- . setParam ( 'code_challenge_method' , 'S256' )
67
- . setParam ( 'code_challenge' , userProps . getProperty ( 'code_challenge' ) )
60
+ // Generate code verifier parameter
61
+ . generateCodeVerifier ( )
68
62
69
63
. setTokenHeaders ( {
70
64
'Authorization' : 'Basic ' + Utilities . base64Encode ( CLIENT_ID + ':' + CLIENT_SECRET ) ,
@@ -91,27 +85,3 @@ function authCallback(request) {
91
85
function logRedirectUri ( ) {
92
86
Logger . log ( OAuth2 . getRedirectUri ( ) ) ;
93
87
}
94
-
95
- /**
96
- * Generates code_verifier & code_challenge for PKCE
97
- */
98
- function pkceChallengeVerifier ( ) {
99
- var userProps = PropertiesService . getUserProperties ( ) ;
100
- if ( ! userProps . getProperty ( 'code_verifier' ) ) {
101
- var verifier = '' ;
102
- var possible = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789-._~' ;
103
-
104
- for ( var i = 0 ; i < 128 ; i ++ ) {
105
- verifier += possible . charAt ( Math . floor ( Math . random ( ) * possible . length ) ) ;
106
- }
107
-
108
- var sha256Hash = Utilities . computeDigest ( Utilities . DigestAlgorithm . SHA_256 , verifier ) ;
109
-
110
- var challenge = Utilities . base64Encode ( sha256Hash )
111
- . replace ( / \+ / g, '-' )
112
- . replace ( / \/ / g, '_' )
113
- . replace ( / = + $ / , '' ) ;
114
- userProps . setProperty ( 'code_verifier' , verifier ) ;
115
- userProps . setProperty ( 'code_challenge' , challenge ) ;
116
- }
117
- }
0 commit comments