Last active
October 22, 2018 17:30
-
-
Save seankovacs/bb4fe2164dc9767dee0d to your computer and use it in GitHub Desktop.
Google Voice internal OAuth2 API
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Oauth2 Scope: | |
https://www.googleapis.com/auth/googlevoice | |
+https://www.googleapis.com/auth/contacts | |
+https://www.googleapis.com/auth/userinfo.email | |
+https://www.googleapis.com/auth/userinfo.profile | |
+https://www.googleapis.com/auth/googletalk | |
++++ Folder/Label counts | |
POST /rpc?prettyprint=false HTTP/1.1 | |
Host: www.googleapis.com | |
Authorization: Bearer ya29.BQFtJvgWmCJ3lVTe2QMC3hC7gR5Zh7lPEFXMlWL8XyyhaxDGF0mCAYTd_A12Ouj7HxcLbX3w29PCvA | |
Content-Type: application/json-rpc; charset=utf-8 | |
Accept: application/json-rpc | |
Accept-Language: en-us | |
Accept-Encoding: gzip, deflate | |
Content-Length: 182 | |
Cache-Control: no-cache | |
Connection: keep-alive | |
Proxy-Connection: keep-alive | |
User-Agent: com.google.GVDialer/1.6.0 google-api-objc-client/2.0 iPhone/8.1.2 hw/iPhone7_2 iPhoneUnknown (gzip) | |
{"method":"voice.internalMobileApi.getaccountstatus","id":"gtl_9","jsonrpc":"2.0","params":{"key":"AIzaSyAtigdLU79JdgGyN3adhFHRbwRRWNjIt-Q","request": | |
{}},"apiVersion":"v0.1internal"} | |
+++ List convo | |
POST /rpc?prettyprint=false HTTP/1.1 | |
Host: www.googleapis.com | |
Authorization: Bearer ya29.BQFtJvgWmCJ3lVTe2QMC3hC7gR5Zh7lPEFXMlWL8XyyhaxDGF0mCAYTd_A12Ouj7HxcLbX3w29PCvA | |
Content-Type: application/json-rpc; charset=utf-8 | |
Accept: application/json-rpc | |
Accept-Language: en-us | |
Accept-Encoding: gzip, deflate | |
Content-Length: 245 | |
Cache-Control: no-cache | |
Connection: keep-alive | |
Proxy-Connection: keep-alive | |
User-Agent: com.google.GVDialer/1.6.0 google-api-objc-client/2.0 iPhone/8.1.2 hw/iPhone7_2 iPhoneUnknown (gzip) | |
{"method":"voice.internalMobileApi.listconversations","id":"gtl_11","jsonrpc":"2.0","params":{"key":"AIzaSyAtigdLU79JdgGyN3adhFHRbwRRWNjIt-Q","request": | |
{"offset":0,"label":["inbox"],"limit":10,"wantTranscript":true}},"apiVersion":"v0.1internal"} | |
+++ search convo | |
POST /rpc?prettyprint=false HTTP/1.1 | |
Host: www.googleapis.com | |
Authorization: Bearer ya29.BQFtJvgWmCJ3lVTe2QMC3hC7gR5Zh7lPEFXMlWL8XyyhaxDGF0mCAYTd_A12Ouj7HxcLbX3w29PCvA | |
Content-Type: application/json-rpc; charset=utf-8 | |
Accept: application/json-rpc | |
Accept-Language: en-us | |
Accept-Encoding: gzip, deflate | |
Content-Length: 245 | |
Cache-Control: no-cache | |
Connection: keep-alive | |
Proxy-Connection: keep-alive | |
User-Agent: com.google.GVDialer/1.6.0 google-api-objc-client/2.0 iPhone/8.1.2 hw/iPhone7_2 iPhoneUnknown (gzip) | |
{"method":"voice.internalMobileApi.searchconversations","id":"gtl_11","jsonrpc":"2.0","params":{"key":"AIzaSyAtigdLU79JdgGyN3adhFHRbwRRWNjIt-Q","request": | |
{"limit":10,"offset":0,"query":"gdbbgv","wantTranscript":true}},"apiVersion":"v0.1internal"} | |
++++ Full settings | |
POST /rpc?prettyprint=false HTTP/1.1 | |
Host: www.googleapis.com | |
Authorization: Bearer ya29.BQFtJvgWmCJ3lVTe2QMC3hC7gR5Zh7lPEFXMlWL8XyyhaxDGF0mCAYTd_A12Ouj7HxcLbX3w29PCvA | |
Content-Type: application/json-rpc; charset=utf-8 | |
Accept: application/json-rpc | |
Accept-Language: en-us | |
Accept-Encoding: gzip, deflate | |
Content-Length: 181 | |
Cache-Control: no-cache | |
Connection: keep-alive | |
Proxy-Connection: keep-alive | |
User-Agent: com.google.GVDialer/1.6.0 google-api-objc-client/2.0 iPhone/8.1.2 hw/iPhone7_2 iPhoneUnknown (gzip) | |
{"method":"voice.internalMobileApi.updatesettings","id":"gtl_13","jsonrpc":"2.0","params":{"key":"AIzaSyAtigdLU79JdgGyN3adhFHRbwRRWNjIt-Q","request": | |
{}},"apiVersion":"v0.1internal"} | |
+++ Client Settings ID? | |
POST /rpc?prettyprint=false HTTP/1.1 | |
Host: www.googleapis.com | |
Authorization: Bearer ya29.BQFtJvgWmCJ3lVTe2QMC3hC7gR5Zh7lPEFXMlWL8XyyhaxDGF0mCAYTd_A12Ouj7HxcLbX3w29PCvA | |
Content-Type: application/json-rpc; charset=utf-8 | |
Accept: application/json-rpc | |
Accept-Language: en-us | |
Accept-Encoding: gzip, deflate | |
Content-Length: 184 | |
Cache-Control: no-cache | |
Connection: keep-alive | |
Proxy-Connection: keep-alive | |
User-Agent: com.google.GVDialer/1.6.0 google-api-objc-client/2.0 iPhone/8.1.2 hw/iPhone7_2 iPhoneUnknown (gzip) | |
{"method":"voice.internalMobileApi.getclientsettings","id":"gtl_29","jsonrpc":"2.0","params":{"key":"AIzaSyAtigdLU79JdgGyN3adhFHRbwRRWNjIt-Q","request": | |
{}},"apiVersion":"v0.1internal"} | |
+++ get shadow number to destination # matrix | |
POST /rpc?prettyprint=false HTTP/1.1 | |
Host: www.googleapis.com | |
Authorization: Bearer ya29.BQFtJvgWmCJ3lVTe2QMC3hC7gR5Zh7lPEFXMlWL8XyyhaxDGF0mCAYTd_A12Ouj7HxcLbX3w29PCvA | |
Content-Type: application/json-rpc; charset=utf-8 | |
Accept: application/json-rpc | |
Accept-Language: en-us | |
Accept-Encoding: gzip, deflate | |
Content-Length: 214 | |
Cache-Control: no-cache | |
Connection: keep-alive | |
Proxy-Connection: keep-alive | |
User-Agent: com.google.GVDialer/1.6.0 google-api-objc-client/2.0 iPhone/8.1.2 hw/iPhone7_2 iPhoneUnknown (gzip) | |
{"method":"voice.internalMobileApi.getbackendinfo","id":"gtl_27","jsonrpc":"2.0","params":{"key":"AIzaSyAtigdLU79JdgGyN3adhFHRbwRRWNjIt-Q","request": | |
{"forwardingNumber":"+[PHONE NUMBER]"}},"apiVersion":"v0.1internal"} | |
++++ Add/remove labels | |
POST /rpc?prettyprint=false HTTP/1.1 | |
Host: www.googleapis.com | |
Authorization: Bearer ya29.BQFtJvgWmCJ3lVTe2QMC3hC7gR5Zh7lPEFXMlWL8XyyhaxDGF0mCAYTd_A12Ouj7HxcLbX3w29PCvA | |
Content-Type: application/json-rpc; charset=utf-8 | |
Accept: application/json-rpc | |
Accept-Language: en-us | |
Accept-Encoding: gzip, deflate | |
Content-Length: 291 | |
Cache-Control: no-cache | |
Connection: keep-alive | |
Proxy-Connection: keep-alive | |
User-Agent: com.google.GVDialer/1.6.0 google-api-objc-client/2.0 iPhone/8.1.2 hw/iPhone7_2 iPhoneUnknown (gzip) | |
{"method":"voice.internalMobileApi.updateconversationlabels","id":"gtl_33","jsonrpc":"2.0","params":{"key":"AIzaSyAtigdLU79JdgGyN3adhFHRbwRRWNjIt- | |
Q","request":{"addLabel":[],"conversationId":["JJKPVJQZYLUMYJWHSPXWLWTXOSGQMMIJYMMWSTOY"],"removeLabel":["unread"]}},"apiVersion":"v0.1internal"} | |
++++ direct dial call? useshadownumber =false is callback? | |
POST /rpc?prettyprint=false HTTP/1.1 | |
Host: www.googleapis.com | |
Authorization: Bearer ya29.BQFtJvgWmCJ3lVTe2QMC3hC7gR5Zh7lPEFXMlWL8XyyhaxDGF0mCAYTd_A12Ouj7HxcLbX3w29PCvA | |
Content-Type: application/json-rpc; charset=utf-8 | |
Accept: application/json-rpc | |
Accept-Language: en-us | |
Accept-Encoding: gzip, deflate | |
Content-Length: 300 | |
Cache-Control: no-cache | |
Connection: keep-alive | |
Proxy-Connection: keep-alive | |
User-Agent: com.google.GVDialer/1.6.0 google-api-objc-client/2.0 iPhone/8.1.2 hw/iPhone7_2 iPhoneUnknown (gzip) | |
{"method":"voice.internalMobileApi.initcallthrough","id":"gtl_35","jsonrpc":"2.0","params":{"key":"AIzaSyAtigdLU79JdgGyN3adhFHRbwRRWNjIt-Q","request": | |
{"subscriberDid":"+[GV PHONE NUMBER]","outgoingNumber":"+[PHONE NUMBER]","devicePhoneNumber":"+[PHONE NUMBER]","useShadowNumber":true}},"apiVersion":"v0.1internal"} | |
++++ send SMS | |
POST /rpc?prettyprint=false HTTP/1.1 | |
Host: www.googleapis.com | |
Authorization: Bearer ya29.BQFtJvgWmCJ3lVTe2QMC3hC7gR5Zh7lPEFXMlWL8XyyhaxDGF0mCAYTd_A12Ouj7HxcLbX3w29PCvA | |
Content-Type: application/json-rpc; charset=utf-8 | |
Accept: application/json-rpc | |
Accept-Language: en-us | |
Accept-Encoding: gzip, deflate | |
Content-Length: 288 | |
Cache-Control: no-cache | |
Connection: keep-alive | |
Proxy-Connection: keep-alive | |
User-Agent: com.google.GVDialer/1.6.0 google-api-objc-client/2.0 iPhone/8.1.2 hw/iPhone7_2 iPhoneUnknown (gzip) | |
{"method":"voice.internalMobileApi.sendsms","id":"gtl_41","jsonrpc":"2.0","params":{"key":"AIzaSyAtigdLU79JdgGyN3adhFHRbwRRWNjIt-Q","request": | |
{"subscriberDid":"+[GV PHONE NUMBER]","outgoingDestination":["+[PHONE NUMBER]"],"messageId":[3620884579],"smsMessage":"Hi"}},"apiVersion":"v0.1internal"} | |
+++++ send sms Multiple | |
POST /rpc?prettyprint=false HTTP/1.1 | |
Host: www.googleapis.com | |
Authorization: Bearer ya29.BQFtJvgWmCJ3lVTe2QMC3hC7gR5Zh7lPEFXMlWL8XyyhaxDGF0mCAYTd_A12Ouj7HxcLbX3w29PCvA | |
Content-Type: application/json-rpc; charset=utf-8 | |
Accept: application/json-rpc | |
Accept-Language: en-us | |
Accept-Encoding: gzip, deflate | |
Content-Length: 318 | |
Cache-Control: no-cache | |
Connection: keep-alive | |
Proxy-Connection: keep-alive | |
User-Agent: com.google.GVDialer/1.6.0 google-api-objc-client/2.0 iPhone/8.1.2 hw/iPhone7_2 iPhoneUnknown (gzip) | |
{"method":"voice.internalMobileApi.sendsms","id":"gtl_43","jsonrpc":"2.0","params":{"key":"AIzaSyAtigdLU79JdgGyN3adhFHRbwRRWNjIt-Q","request": | |
{"subscriberDid":"+[GV PHONE NUMBER]","outgoingDestination":["+[PHONE NUMBER]","1-800-MY-APPLE"],"messageId": | |
[1018517004,1026438777],"smsMessage":"Feel"}},"apiVersion":"v0.1internal"} | |
++++ reply SMS adds converationId | |
POST /rpc?prettyprint=false HTTP/1.1 | |
Host: www.googleapis.com | |
Authorization: Bearer ya29.BQFtJvgWmCJ3lVTe2QMC3hC7gR5Zh7lPEFXMlWL8XyyhaxDGF0mCAYTd_A12Ouj7HxcLbX3w29PCvA | |
Content-Type: application/json-rpc; charset=utf-8 | |
Accept: application/json-rpc | |
Accept-Language: en-us | |
Accept-Encoding: gzip, deflate | |
Content-Length: 345 | |
Cache-Control: no-cache | |
Connection: keep-alive | |
Proxy-Connection: keep-alive | |
User-Agent: com.google.GVDialer/1.6.0 google-api-objc-client/2.0 iPhone/8.1.2 hw/iPhone7_2 iPhoneUnknown (gzip) | |
{"method":"voice.internalMobileApi.sendsms","id":"gtl_123","jsonrpc":"2.0","params":{"key":"AIzaSyAtigdLU79JdgGyN3adhFHRbwRRWNjIt-Q","request": | |
{"smsMessage":"Hi","subscriberDid":"+[GV PHONE NUMBER]","outgoingDestination": | |
["+[PHONE NUMBER]"],"conversationId":"775c86bb9460e7d7bda806662735f74eb7d3f589","messageId":[1741954366]}},"apiVersion":"v0.1internal"} | |
+++ set DND | |
POST /rpc?prettyprint=false HTTP/1.1 | |
Host: www.googleapis.com | |
Authorization: Bearer ya29.BQFtJvgWmCJ3lVTe2QMC3hC7gR5Zh7lPEFXMlWL8XyyhaxDGF0mCAYTd_A12Ouj7HxcLbX3w29PCvA | |
Content-Type: application/json-rpc; charset=utf-8 | |
Accept: application/json-rpc | |
Accept-Language: en-us | |
Accept-Encoding: gzip, deflate | |
Content-Length: 235 | |
Cache-Control: no-cache | |
Connection: keep-alive | |
Proxy-Connection: keep-alive | |
User-Agent: com.google.GVDialer/1.6.0 google-api-objc-client/2.0 iPhone/8.1.2 hw/iPhone7_2 iPhoneUnknown (gzip) | |
{"method":"voice.internalMobileApi.updatesettings","id":"gtl_165","jsonrpc":"2.0","params":{"key":"AIzaSyAtigdLU79JdgGyN3adhFHRbwRRWNjIt-Q","request": | |
{"settings":{"doNotDisturb":true,"forwardingPhone":[]}}},"apiVersion":"v0.1internal"} | |
+++++ get voicemail | |
POST /rpc?prettyprint=false HTTP/1.1 | |
Host: www.googleapis.com | |
Authorization: Bearer ya29.BQFtJvgWmCJ3lVTe2QMC3hC7gR5Zh7lPEFXMlWL8XyyhaxDGF0mCAYTd_A12Ouj7HxcLbX3w29PCvA | |
Content-Type: application/json-rpc; charset=utf-8 | |
Accept: application/json-rpc | |
Accept-Language: en-us | |
Accept-Encoding: gzip, deflate | |
Content-Length: 234 | |
Cache-Control: no-cache | |
Connection: keep-alive | |
Proxy-Connection: keep-alive | |
User-Agent: com.google.GVDialer/1.6.0 google-api-objc-client/2.0 iPhone/8.1.2 hw/iPhone7_2 iPhoneUnknown (gzip) | |
{"method":"voice.internalMobileApi.fetchrecording","id":"gtl_61","jsonrpc":"2.0","params":{"key":"AIzaSyAtigdLU79JdgGyN3adhFHRbwRRWNjIt-Q","request": | |
{"callId":["YZQRNPMUKJYYIXZMTMJVUVPPHIXRZUGQLUJPRWKZ"]}},"apiVersion":"v0.1internal"} | |
++++ call back call | |
POST /rpc?prettyprint=false HTTP/1.1 | |
Host: www.googleapis.com | |
Authorization: Bearer ya29.BQFtJvgWmCJ3lVTe2QMC3hC7gR5Zh7lPEFXMlWL8XyyhaxDGF0mCAYTd_A12Ouj7HxcLbX3w29PCvA | |
Content-Type: application/json-rpc; charset=utf-8 | |
Accept: application/json-rpc | |
Accept-Language: en-us | |
Accept-Encoding: gzip, deflate | |
Content-Length: 277 | |
Cache-Control: no-cache | |
Connection: keep-alive | |
Proxy-Connection: keep-alive | |
User-Agent: com.google.GVDialer/1.6.0 google-api-objc-client/2.0 iPhone/8.1.2 hw/iPhone7_2 iPhoneUnknown (gzip) | |
{"method":"voice.internalMobileApi.initclicktocall","id":"gtl_171","jsonrpc":"2.0","params":{"key":"AIzaSyAtigdLU79JdgGyN3adhFHRbwRRWNjIt-Q","request": | |
{"outgoingNumber":"+[PHONE NUMBER]","subscriberDid":"+[GV PHONE NUMBER]","forwardingNumber":"+[PHONE NUMBER]"}},"apiVersion":"v0.1internal"} | |
+++++ cancel call back | |
POST /rpc?prettyprint=false HTTP/1.1 | |
Host: www.googleapis.com | |
Authorization: Bearer ya29.BQEqkUYDvg9c8rDrBm5a0bpMSBFWngVwgFC01OHcV71qaKL8RZw1YilAXi6mW6R8LiI7L0LfzmIFmA | |
Content-Type: application/json-rpc; charset=utf-8 | |
Accept: application/json-rpc | |
Accept-Language: en-us | |
Accept-Encoding: gzip, deflate | |
Content-Length: 274 | |
Cache-Control: no-cache | |
Connection: keep-alive | |
Proxy-Connection: keep-alive | |
User-Agent: com.google.GVDialer/1.6.0 google-api-objc-client/2.0 iPhone/8.1.2 hw/iPhone7_2 iPhoneUnknown (gzip) | |
{"method":"voice.internalMobileApi.cancelcall","id":"gtl_355","jsonrpc":"2.0","params":{"key":"AIzaSyAtigdLU79JdgGyN3adhFHRbwRRWNjIt-Q","request": | |
{"outgoingNumber":"+17708960082","subscriberDid":"+[GV PHONE NUMBER]","forwardingNumber":"+[PHONE NUMBER]"}},"apiVersion":"v0.1internal"} | |
++++ add phone to GV | |
POST /rpc?prettyprint=false HTTP/1.1 | |
Host: www.googleapis.com | |
Authorization: Bearer ya29.BQEqkUYDvg9c8rDrBm5a0bpMSBFWngVwgFC01OHcV71qaKL8RZw1YilAXi6mW6R8LiI7L0LfzmIFmA | |
Content-Type: application/json-rpc; charset=utf-8 | |
Accept: application/json-rpc | |
Accept-Language: en-us | |
Accept-Encoding: gzip, deflate | |
Content-Length: 277 | |
Cache-Control: no-cache | |
Connection: keep-alive | |
Proxy-Connection: keep-alive | |
User-Agent: com.google.GVDialer/1.6.0 google-api-objc-client/2.0 iPhone/8.1.2 hw/iPhone7_2 iPhoneUnknown (gzip) | |
{"method":"voice.internalMobileApi.updatesettings","id":"gtl_399","jsonrpc":"2.0","params":{"key":"AIzaSyAtigdLU79JdgGyN3adhFHRbwRRWNjIt-Q","request": | |
{"settings":{"forwardingPhone":[{"type":2,"policy":0,"name":"My iPhone","number":"+[PHONE NUMBER]"}]}}},"apiVersion":"v0.1internal"} | |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Any ideas how I could get a token using those scopes? Using googles OAuth 2.0 playground the token returned gives me an
Invalid Credentials
error.