Xin chào Analytics API: Bắt đầu nhanh Python cho tài khoản dịch vụ

Tài liệu hướng dẫn này trình bày các bước cần thiết để truy cập vào tài khoản Google Analytics, truy vấn API Analytics, xử lý các phản hồi của API và xuất kết quả. API Báo cáo chính phiên bản 3.0, API Quản lý phiên bản 3.0API OAuth2.0 được sử dụng trong hướng dẫn này.

Bước 1: Bật Analytics API

Để bắt đầu sử dụng API Google Analytics, trước tiên bạn cần sử dụng công cụ thiết lập. Công cụ này sẽ hướng dẫn bạn cách tạo dự án trong Google API Console, bật API và tạo thông tin đăng nhập.

Tạo mã ứng dụng khách

  1. Mở trang Tài khoản dịch vụ. Nếu thấy lời nhắc, hãy chọn một dự án.
  2. Nhấp vào Tạo tài khoản dịch vụ rồi nhập tên và phần mô tả cho tài khoản dịch vụ. Bạn có thể sử dụng mã tài khoản dịch vụ mặc định hoặc chọn một mã riêng biệt khác. Khi hoàn tất, hãy nhấp vào Tạo.
  3. Bạn không bắt buộc phải làm gì trong phần Quyền tài khoản dịch vụ (tuỳ chọn) sau đó. Hãy nhấp vào Tiếp tục.
  4. Trên màn hình Cấp cho người dùng quyền truy cập vào tài khoản dịch vụ này, hãy cuộn xuống phần Tạo khoá. Nhấp vào Tạo khoá.
  5. Trong bảng điều khiển bên xuất hiện, hãy chọn định dạng cho khoá của bạn: bạn nên chọn JSON.
  6. Nhấp vào Tạo. Cặp khoá công khai/riêng tư mới của bạn sẽ được tạo và tải xuống máy của bạn; đây là bản sao duy nhất của khoá này. Để biết thông tin về cách lưu trữ khoá an toàn, hãy xem Quản lý khoá tài khoản dịch vụ.
  7. Nhấp vào Đóng trên hộp thoại Khoá riêng tư đã lưu vào máy tính của bạn, sau đó nhấp vào Xong để trở về bảng tài khoản dịch vụ.

Thêm tài khoản dịch vụ vào tài khoản Google Analytics

Tài khoản dịch vụ mới tạo sẽ có địa chỉ email <projectId>-<uniqueId>@developer.gserviceaccount.com; Hãy dùng địa chỉ email này để thêm người dùng vào tài khoản Google Analytics mà bạn muốn truy cập thông qua API. Trong hướng dẫn này, chỉ cần quyền Đọc và phân tích.

Bước 2: Cài đặt Thư viện ứng dụng của Google

Bạn có thể sử dụng trình quản lý gói hoặc tải xuống và cài đặt thư viện ứng dụng Python theo cách thủ công:

pip

Hãy dùng pip, công cụ được đề xuất để cài đặt các gói Python:

sudo pip install --upgrade google-api-python-client

Công cụ thiết lập

Sử dụng công cụ easy_install có trong gói setuptools:

sudo easy_install --upgrade google-api-python-client

Cài đặt theo cách thủ công

Tải thư viện ứng dụng cho python mới nhất xuống, giải nén mã và chạy:

sudo python setup.py install

Bạn có thể phải gọi lệnh này bằng các đặc quyền của siêu người dùng (sudo) để cài đặt vào hệ thống Python.

Bước 3: Thiết lập mẫu

Bạn cần tạo một tệp có tên HelloAnalytics.py chứa mã mẫu đã cho.

  1. Sao chép hoặc tải mã nguồn sau xuống HelloAnalytics.py.
  2. Di chuyển client_secrets.json đã tải xuống trước đó vào cùng thư mục với mã mẫu.
  3. Thay thế các giá trị của key_file_location bằng các giá trị thích hợp từ Developer Console.
"""A simple example of how to access the Google Analytics API."""

from apiclient.discovery import build
from oauth2client.service_account import ServiceAccountCredentials


def get_service(api_name, api_version, scopes, key_file_location):
    """Get a service that communicates to a Google API.

    Args:
        api_name: The name of the api to connect to.
        api_version: The api version to connect to.
        scopes: A list auth scopes to authorize for the application.
        key_file_location: The path to a valid service account JSON key file.

    Returns:
        A service that is connected to the specified API.
    """

    credentials = ServiceAccountCredentials.from_json_keyfile_name(
            key_file_location, scopes=scopes)

    # Build the service object.
    service = build(api_name, api_version, credentials=credentials)

    return service


def get_first_profile_id(service):
    # Use the Analytics service object to get the first profile id.

    # Get a list of all Google Analytics accounts for this user
    accounts = service.management().accounts().list().execute()

    if accounts.get('items'):
        # Get the first Google Analytics account.
        account = accounts.get('items')[0].get('id')

        # Get a list of all the properties for the first account.
        properties = service.management().webproperties().list(
                accountId=account).execute()

        if properties.get('items'):
            # Get the first property id.
            property = properties.get('items')[0].get('id')

            # Get a list of all views (profiles) for the first property.
            profiles = service.management().profiles().list(
                    accountId=account,
                    webPropertyId=property).execute()

            if profiles.get('items'):
                # return the first view (profile) id.
                return profiles.get('items')[0].get('id')

    return None


def get_results(service, profile_id):
    # Use the Analytics Service Object to query the Core Reporting API
    # for the number of sessions within the past seven days.
    return service.data().ga().get(
            ids='ga:' + profile_id,
            start_date='7daysAgo',
            end_date='today',
            metrics='ga:sessions').execute()


def print_results(results):
    # Print data nicely for the user.
    if results:
        print 'View (Profile):', results.get('profileInfo').get('profileName')
        print 'Total Sessions:', results.get('rows')[0][0]

    else:
        print 'No results found'


def main():
    # Define the auth scopes to request.
    scope = 'https://www.googleapis.com/auth/analytics.readonly'
    key_file_location = '<REPLACE_WITH_JSON_FILE>'

    # Authenticate and construct service.
    service = get_service(
            api_name='analytics',
            api_version='v3',
            scopes=[scope],
            key_file_location=key_file_location)

    profile_id = get_first_profile_id(service)
    print_results(get_results(service, profile_id))


if __name__ == '__main__':
    main()

Bước 4: Chạy mẫu

Sau khi bạn bật API Analytics, hãy cài đặt thư viện ứng dụng API của Google cho Python, và thiết lập mã nguồn mẫu để mẫu sẵn sàng chạy.

Chạy mẫu bằng cách sử dụng:

python HelloAnalytics.py

Khi bạn hoàn tất những bước này, mẫu sẽ hiển thị tên của chế độ xem (hồ sơ) Google Analytics đầu tiên của người dùng được uỷ quyền và số phiên trong 7 ngày qua.

Với đối tượng dịch vụ Analytics được uỷ quyền, giờ đây, bạn có thể chạy mọi mã mẫu có trong tài liệu tham khảo về API Quản lý. Ví dụ: bạn có thể thử thay đổi mã để sử dụng phương thức accountSummaries.list.

Khắc phục sự cố

Lỗi thuộc tính: Đối tượng "Module_six_moves_urllib_parse" không có thuộc tính "urlparse"

Lỗi này có thể xảy ra trong Mac OSX, trong đó cài đặt mặc định của mô-đun "6" (phần phụ thuộc của thư viện này) được tải trước mô-đun mà pip cài đặt. Để khắc phục vấn đề này, hãy thêm vị trí cài đặt của pip vào biến môi trường hệ thống PYTHONPATH:

  1. Xác định vị trí cài đặt của pip bằng lệnh sau:

    pip show six | grep "Location:" | cut -d " " -f2
    

  2. Thêm dòng sau vào tệp ~/.bashrc, thay thế <pip_install_path> bằng giá trị được xác định ở trên:

    export PYTHONPATH=$PYTHONPATH:<pip_install_path>
    
  3. Tải lại tệp ~/.bashrc trong mọi cửa sổ dòng lệnh đang mở bằng lệnh sau:

    source ~/.bashrc