2

В моей группе Google насчитывается около 15000+ членов, и я хотел бы экспортировать их в файл CSV. Группы Google говорят, что слишком много для экспорта. Есть ли другой способ экспортировать всех участников 15000+?Как экспортировать 15000+ участников Google Group?

+0

В итоге вы нашли ответ на этот вопрос? –

+0

невозможно экспортировать пользователей с использованием любого API. Я использовал для создания букмарклета для получения электронной почты со страницы с помощью Javascrip. – Punithavel

+0

Значит, вас интересовало только очищение адресов электронной почты? –

ответ

0

вы можете экспортировать все контакты в вашей группе Google в электронной таблице Google

ссылка: https://developers.google.com/apps-script/reference/groups/

После того, как вы можете создать триггер, чтобы добавить новый контакт динамически, и экспортировать вам Google электронную таблицу в файле с CVS в.

вы можете создать это решение быстро и просто.

1

Это возможно с использованием 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 для вашего проекта.