【Python】Slackbot에서 Google 애널리틱스 데이터를 얻습니다.
Slackbot을 Google 애널리틱스의 데이터를 얻으려면 Google API에 등록해야 하므로 약간 번거롭지만, 자주 사용하는 숫자나 기간을 Bot에 등록해 두면 언제든지 원터치로 액세스 수를 확인할 수 있습니다. .
Python에서 Slackbot의 기본 구현 방법은 "Slackbot을 파이썬으로 만들자."을 읽어보십시오.
파이썬에서 Google API를 얻는 기본 단계는 'Google 웹로그 분석 정보를 Python으로 가져오기'을 참조하십시오.
Google 애널리틱스 데이터를 얻는 방법
Google 애널리틱스의 데이터는 개체에서 검색할 수 있습니다.
데이터의 내용이나 사용법은 「 공식 문서 보고서 작성 페이지 」에 설명되어 있습니다.
데이터의 취득은 reports().batchGet() 메소드로 실시합니다.
취득하는 데이터는 이하와 같은 포맷으로 지정합니다.
analytics.reports().batchGet(
body={
'reportRequests': [
{
'viewId': self.VIEW_ID,
# 期間を指定する
'dateRanges': [{'startDate': '開始日', 'endDate': '終了日'}],
'metrics': [
# ページビュー数を取得する
{'expression': 'ga:pageviews'},
# セッション数を取得する
{'expression': 'ga:sessions'}
],
}]
}
).execute()
'dateRanges'의 'startDate'에서 'endDate'로 시작일과 종료일을 지정할 수 있습니다.
"metrics"에 검색할 데이터를 지정합니다.
구현 방법
· 파이썬 정보를 얻는 처리
from apiclient.discovery import build
from oauth2client.service_account import ServiceAccountCredentials
from slackbot.bot import respond_to
# Analyticsデータの取得クラス
class HelloAnalytics:
def __init__(self, scopes, key_file_location, view_id):
self.SCOPES = scopes
self.KEY_FILE_LOCATION = key_file_location
self.VIEW_ID = view_id
self.startDate = '7daysAgo'
self.endDate = 'today'
# レポートの初期化
def initialize_analyticsreporting(self):
credentials = ServiceAccountCredentials.from_json_keyfile_name(
self.KEY_FILE_LOCATION, self.SCOPES)
# Build the service object.
analytics = build('analyticsreporting', 'v4', credentials=credentials)
return analytics
# レポートを取得する
def get_report(self, analytics):
return analytics.reports().batchGet(
body={
'reportRequests': [
{
'viewId': self.VIEW_ID,
'dateRanges': [{'startDate': self.startDate, 'endDate': self.endDate}],
'metrics': [
{'expression': 'ga:pageviews'},
{'expression': 'ga:sessions'}
],
# 'dimensions': [{"name": "ga:pageTitle"}]
}]
}
).execute()
# アクセスの取得処理
def report_access(self, response):
reports = []
# データを取得してレポートに格納する
for report in response.get('reports', []):
columnHeader = report.get('columnHeader', {})
dimensionHeaders = columnHeader.get('dimensions', [])
metricHeaders = columnHeader.get('metricHeader', {}).get('metricHeaderEntries', [])
for row in report.get('data', {}).get('rows', []):
dimensions = row.get('dimensions', [])
dateRangeValues = row.get('metrics', [])
for header, dimension in zip(dimensionHeaders, dimensions):
reports.append(header + ': ' + dimension)
for i, values in enumerate(dateRangeValues):
reports.append('Date range: ' + str(i))
for metricHeader, value in zip(metricHeaders, values.get('values')):
reports.append(metricHeader.get('name') + ': ' + value)
return reports
# Botの応答
@respond_to('^アクセスチェック$')
def access_check(message):
# パラメータを設定
SCOPES = ['https://www.googleapis.com/auth/analytics.readonly']
KEY_FILE_LOCATION = 'client_secrets.json'
# view idを指定する
VIEW_ID = 'xxxxxxx'
# インスタンスを生成
hello_analytics = HelloAnalytics(SCOPES, KEY_FILE_LOCATION, VIEW_ID)
hello_analytics.startDate = '2018-10-01'
# 初期化
analytics = hello_analytics.initialize_analyticsreporting()
# データを取得
response = hello_analytics.get_report(analytics)
# レポートを作成
reports = hello_analytics.report_access(response)
message.send('\n'.join(reports))
◆실행예
이상, Slackbot에서 Google 애널리틱스 데이터를 검색하는 방법이었습니다.
◆블로그: miyabino.py (미야비의 어둠 관련 기사
Slackbot을 파이썬으로 만들자.
Slackbot에서 Todoist의 일정 확인
Google 웹로그 분석 정보를 Python으로 가져오기
Slackbot + Python 요약 TOP >> Slackbot 구축 매뉴얼 ~Python편~
Reference
이 문제에 관하여(【Python】Slackbot에서 Google 애널리틱스 데이터를 얻습니다.), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/miyabikno/items/51c46f1dddd927054307텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)