Автоматизация и боты

 Помощь      Поиск      Пользователи
Сайт Кибор     Программируемый кликер Кибор     Видео обучение     Заказать бот

 Страниц (1): [1]   

> Описание: Если она уже создана, без создания новой
Kostick
Отправлено: 17 Июля, 2023 - 03:58:08
Post Id



Пользователь
Мастер


Покинул форум
Сообщений всего: 183
Дата рег-ции: Авг. 2020  
Репутация: 1




Есть код, который создает новую таблицу и выдает права на ее изменение:
CODE:
int New_Table=1;// 1 - создать новую таблицу 0 - редактировать старую таблицу по ее "spreadsheetId"

if (runpython()==1)
{
enableconsolepython(1, 1, 50, 50, 400, 600);
string rez;

//Назавание нашего файла с ключем
string Name_File_Key="special-clothes-2c2644c5bbb0.json"; // Заменить на название своего файла, который вы скачали

//Импорт
__python_sync
import httplib2
import apiclient.discovery
from oauth2client.service_account import ServiceAccountCredentials
__end_python

//Формируем путь к нашему файлу с ключем. Можно указать свой путь
sendgetpython("CREDENTIALS_FILE = r^'"+pathfolder()+"python\"+Name_File_Key+"^'");

//Авторизуемся
__python_sync
credentials = ServiceAccountCredentials.from_json_keyfile_name(CREDENTIALS_FILE, ['https://www.googleapis.com/auth/spreadsheets', 'https://www.googleapis.com/auth/drive'])
httpAuth = credentials.authorize(httplib2.Http())
service = apiclient.discovery.build('sheets', 'v4', http = httpAuth)
__end_python

///////////////////////////////////////////////

if (New_Table==1)//Создать новую таблицу
{

//Создаем таблицу и лист с нужными названиями
__python_sync
spreadsheet = service.spreadsheets().create(body = {
'properties': {'title': 'Статистика заточки Особой одежды 4', 'locale': 'ru_RU'},
'sheets': [{'properties': {'sheetType': 'GRID',
'sheetId': 0,
'title': 'Результаты заточки',
'gridProperties': {'rowCount': 8, 'columnCount': 5}}}]
}).execute()
spreadsheetId = spreadsheet['spreadsheetId'] # сохраняем идентификатор файла
__end_python

//Даем доступ к таблице конкретному пользователю
__python_sync
driveService = apiclient.discovery.build('drive', 'v3', http = httpAuth)
shareRes = driveService.permissions().create(
fileId = spreadsheetId,
body = {'type': 'user', 'role': 'writer', 'emailAddress': 'morozovkv8@gmail.com'}, # Открываем доступ на редактирование
fields = 'id'
).execute()
__end_python

rez=sendgetpython("print (spreadsheetId)");// записываем идентификатор файла в string rez
if (fopen (pathfolder()+"python\Ссылка на Excel-таблицу 5.txt", "w")!=0)
{
fwrite(rez);//Записываем spreadsheetId таблицы
fwrite (ENDL);
fwrite("https:/^/docs.google.com/spreadsheets/d/"+rez);//Записываем полную ссылку на таблицу
fclose();
start(pathfolder()+"python\Ссылка на Excel-таблицу 5.txt");
}
messagebox(rez);
}
else//Редактировать старую таблицу по ее "spreadsheetId"
{

//Считываем с файла "spreadsheetId" таблицы
if (fopen (pathfolder()+"python\Ссылка на Excel-таблицу 5.txt", "r")!=0)
{
freadline (rez);//Записываем в string rez spreadsheetId таблицы
fclose();
}

//Присваиваем Python переменной с названием spreadsheetId "spreadsheetId" таблицы
sendgetpython("spreadsheetId = ^'"+rez+"^'");
}


messagebox ("Работа закончена");
closepython();
}
else messagebox ("Не удалось запустить Python");


Не могу понять, как дать права на таблицу, когда она уже создана, без создания ее по новой?
Чтобы получить доступ к таблице и Google Sheets, все делал по инструкции отсюда:(для просмотра ссылки Вам необходимо авторизоваться)
В коде нужно изменить название файла с расширением "*.json"с ключем, почту, которой будем давать права, название таблицы и листа, и название файла, который создадим и в котором будет идентификатор и ссылка на таблицу.
 
 Top
Kibor
Отправлено: 17 Июля, 2023 - 20:16:22
Post Id



Администратор
Эксперт


Покинул форум
Сообщений всего: 8193
Дата рег-ции: Март 2013  
Откуда: Одесса
Репутация: 357




Все права у вас в файле special-clothes-2c2644c5bbb0.json
который должен быть в pathfolder()+"python\special-clothes-2c2644c5bbb0.json"
 
 Top
Страниц (1): [1]
Сейчас эту тему просматривают: 2 (гостей: 2, зарегистрированных: 0)
« Вопросы и решение проблем »


Все гости форума могут просматривать этот раздел.
Только зарегистрированные пользователи могут создавать новые темы в этом разделе.
Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.
 




Powered by