В моей группе Google насчитывается около 15000+ членов, и я хотел бы экспортировать их в файл CSV. Группы Google говорят, что слишком много для экспорта. Есть ли другой способ экспортировать всех участников 15000+?Как экспортировать 15000+ участников Google Group?
ответ
вы можете экспортировать все контакты в вашей группе Google в электронной таблице Google
ссылка: https://developers.google.com/apps-script/reference/groups/
После того, как вы можете создать триггер, чтобы добавить новый контакт динамически, и экспортировать вам Google электронную таблицу в файле с CVS в.
вы можете создать это решение быстро и просто.
Это возможно с использованием API каталогов. Вы можете посмотреть, как настроить проект в консоли разработчика Google с соответствующими областями here. У меня есть пример кода ниже, который показывает, как я сделал это для своего менеджера списка рассылки (написанного на Python3). Обратите внимание, что моя только выдает список, но вы также можете написать csv.
import urllib.request, urllib.parse, urllib.error
import json
req = urllib.request.Request("https://www.googleapis.com/admin/directory/v1/groups/%s/members" % (group.replace("@", "%40").replace(".", "%2E")))
req.add_header("Authorization", "Bearer %s" % (authToken))
rawResponse = urllib.request.urlopen(req)
fResponse = json.loads(rawResponse.readall().decode('utf-8'))
if "members" in fResponse:
curMembers = fResponse["members"]
while "nextPageToken" in fResponse:
req = urllib.request.Request("https://www.googleapis.com/admin/directory/v1/groups/%s/members?pageToken=%s" % (group.replace("@", "%40").replace(".", "%2E"), fResponse['nextPageToken']))
req.add_header("Authorization", "Bearer %s" % (authToken))
rawResponse = urllib.request.urlopen(req)
fResponse = json.loads(rawResponse.readall().decode('utf-8'))
if "members" in fResponse:
curMembers.extend(fResponse["members"])
Вам нужно определить путь для получения маркера аутентификации oauth2 (authToken в приведенном выше фрагменте кода). Я делаю так, как показано ниже, но есть специализированные библиотеки для этого (только не для Python3, что я знаю):
def RenewToken():
"""
This function retrieves an authentication token from Google which will allow the script
to view and edit group membership
"""
clientID = "client_id.apps.googleusercontent.com"
clientSecret = "client_secret"
grantType = "refresh_token"
responseType = "code"
refreshToken = "refresh_token"
requestDict = {"client_secret": clientSecret, #field-value pairs for the request body
"grant_type": grantType,
"refresh_token": refreshToken,
"client_id": clientID}
requestUri = "https://accounts.google.com/o/oauth2/token"
requestString = urllib.parse.urlencode(requestDict)
requestBody = requestString.encode('utf-8')
request = urllib.request.Request(requestUri, data=requestBody)
response = urllib.request.urlopen(request)
responseDict = json.loads(response.readall().decode('utf-8'))
return responseDict['access_token']
Вы можете получить client_id, client_secret и refresh_token из консоли разработчика Google для вашего проекта.
В итоге вы нашли ответ на этот вопрос? –
невозможно экспортировать пользователей с использованием любого API. Я использовал для создания букмарклета для получения электронной почты со страницы с помощью Javascrip. – Punithavel
Значит, вас интересовало только очищение адресов электронной почты? –