Search code examples
apipython-requeststeamviewer

TeamViewer APIs Python Calls - Write Success or Error to Output file


I have the following code that works and I get the file output.txt. I would like for the output file to say success when it works and to provide error code when it doesn't.

import requests
import json
f = open('output.txt', 'w')
url = 'https://webapi.teamviewer.com/api/v1/account'
payload = {'name': 'alias', 'email': '[email protected]'}
headers = {"content-type": "application/json", "Authorization": "Bearer myuser token"}
r = requests.put(url, data=json.dumps(payload), headers=headers)
f.write(r.text)
f.close()

TeamViewer HTTP Response codes are:

200 – OK: Used for successful GET, POST and DELETE. 204 – No Content: Used for PUT to indicate that the update succeeded, but no content is included in the response. 400 – Bad Request: One or more parameters for this function is either missing, invalid or unknown. Details should be included in the returned JSON. 401 – Unauthorized: Access token not valid (expired, revoked, …) or not included in the header. 403 – Forbidden / Rate Limit Reached: IP blocked or rate limit reached. 500 – Internal Server Error: Some (unexpected) error on the server. The same request should work if the server works as intended.


Solution

  • You can get the result and error code from your response (assuming TeamViewer api is well behaved):

    r = requests.put(url, data=json.dumps(payload), headers=headers)
    if r.status_code == 200:
       f.write('success')
    else
       f.write('{0}: {1}'.format(r.status_code, r.text))