Posted to tcl by mjanssen at Sun Jul 31 08:24:38 GMT 2016view pretty
set key $googleApplicationKey set secret $googleApplicationSecret package require http # Google APIs require https package require http package require tls http::register https 443 ::tls::socket # Listen for an OAuth2 callback proc accept {chan addr port} { ;# Make a proc to accept connections puts "Google says [gets $chan]" ;# Receive a string puts $chan goodbye ;# Send a string close $chan ;# Close the socket (automatically flushes) } ;# proc start {cmd} { exec {*}[auto_execok start] "" $cmd } socket -server accept 12345 ;# Create a server socket set endpoint https://accounts.google.com/o/oauth2/v2/auth set params [list response_type code] lappend params client_id $key lappend params redirect_uri http://127.0.0.1:12345 lappend params scope profile lappend params state "somerandomstringyoushouldcheckonreturntoprevent MIM attacks" set result [http::geturl $endpoint -query [http::formatQuery {*}$params]] upvar #0 $result state puts "Copy this URL to your browser: [dict get $state(meta) Location]"