выгрузка фото на onedrive
такой вопрос: Есть скрипт(не мой), который должен выгружать фото на onedrive, значение scope пустое и скрипт не работает. Что может быть не так?
import requests
import json
import urllib
import os
#from getpass import getpass
import time
from datetime import datetime
URL = "https://login.microsoftonline.com/common/oauth2/v2.0/authorize"
client_id = "ТУТ КЛИЕНТ ID, я его убрал"
permissions = ["offline_access", "files.readwrite", "User.Read"]
response_type = "code"
redirect_uri = "http://localhost:8080/"
scope = ""
for items in range(len(permissions)):
scope = scope + permissions[items]
if items < len(permissions) - 1:
scope = scope + "+"
print("Click over this link " + URL + "?client_id=" + client_id + "&scope=" + scope + "&response_type=" + response_type + "&redirect_uri=" + urllib.parse.quote(redirect_uri))
print("Sign in to your account, copy the whole redirected URL.")
code = input("Paste the URL here :")
code = code[(code.find("?code") + len("?code") + 1) :]
URL = "https://login.microsoftonline.com/common/oauth2/v2.0/token"
response = requests.post(URL + "?client_id=" + client_id + "&scope=" + scope + "&grant_type=authorization_code" + "&redirect_uri=" + urllib.parse.quote(redirect_uri) + "&code=" + code)
data = {
"client_id": client_id,
"scope": permissions,
"code": code,
"redirect_uri": redirect_uri,
"grant_type": 'authorization_code',
"client_secret": ''
}
response = requests.post(URL, data=data)
print(response.text)
token = json.loads(response.text)["access_token"]
refresh_token = json.loads(response.text)["refresh_token"]
def get_refresh_token():
data = {
"client_id": client_id,
"scope": permissions,
"refresh_token": refresh_token,
"redirect_uri": redirect_uri,
"grant_type": "",
"client_secret": "",
}
response = requests.post(URL, data=data)
token = json.loads(response.text)["access_token"]
refresh_token = json.loads(response.text)["refresh_token"]
last_updated = time.mktime(datetime.today().timetuple())
return token, refresh_token, last_updated
token, refresh_token, last_updated = get_refresh_token()
url = 'https://graph.microsoft.com/v1.0/'
HEADERS = {'Authorization': 'Bearer ' + token}
content = open("pidor.png", "rb")
response = json.loads(requests.put(url, headers=HEADERS, data=content).text)
print("Файл загружен!")