Có nhiều cách để định cấu hình ứng dụng.
Định cấu hình bằng tệp YAML
Bạn có thể chỉ định một tệp YAML để sử dụng khi khởi chạy ứng dụng chứa thông tin xác thực cần thiết để tạo yêu cầu. Tệp này được truy cập khi một ứng dụng được khởi chạy bằng phương thức load_from_storage
.
Cách dễ dàng nhất để tạo tệp này là sao chép ví dụ về google-ads.yaml
từ kho lưu trữ GitHub và sửa đổi ví dụ đó để thêm thông tin xác thực của bạn, bao gồm mã thông báo nhà phát triển, mã thông báo làm mới, mã ứng dụng và khoá ứng dụng.
Nếu bạn không cung cấp đường dẫn, thư viện sẽ tìm tệp trong thư mục $HOME
:
from google.ads.googleads.client import GoogleAdsClient
client = GoogleAdsClient.load_from_storage()
Để chỉ định vị trí của tệp google-ads.yaml
, bạn có thể truyền đường dẫn dưới dạng chuỗi đến phương thức khi gọi phương thức đó:
from google.ads.googleads.client import GoogleAdsClient
client = GoogleAdsClient.load_from_storage("path/to/google-ads.yaml")
Bạn cũng có thể chỉ định đường dẫn bằng cách xác định một biến môi trường cụ thể:
import os
os.environ["GOOGLE_ADS_CONFIGURATION_FILE_PATH"] = "path/to/google-ads.yaml"
from google.ads.googleads.client import GoogleAdsClient
client = GoogleAdsClient.load_from_storage()
Nếu bạn cung cấp cả hai giá trị – một đường dẫn được truyền vào phương thức và biến môi trường ở trên có sẵn – thì thư viện sẽ ưu tiên đường dẫn được truyền vào phương thức.
Định cấu hình bằng biến môi trường
Bạn có thể lưu trữ tất cả cấu hình ứng dụng dưới dạng biến môi trường. Các biến này sẽ được đọc khi sử dụng phương thức load_from_env
của ứng dụng. Các biến môi trường phải có cùng tên với các biến được xác định trong tệp google-ads.yaml
, nhưng phải viết hoa toàn bộ và có tiền tố là không gian tên GOOGLE_ADS_
. Ví dụ: client_id
phải được lưu trữ dưới dạng GOOGLE_ADS_CLIENT_ID
.
Các biến môi trường thường được xác định trong tệp cấu hình bash, chẳng hạn như tệp .bashrc
hoặc .bash_profile
nằm trong thư mục $HOME
. Bạn cũng có thể xác định các biến này bằng dòng lệnh. Xin lưu ý rằng các hướng dẫn này giả định bạn đang sử dụng bash
. Nếu đang sử dụng một shell khác, bạn có thể cần tham khảo tài liệu về cách đặt biến môi trường trong shell mà bạn đang sử dụng.
Dưới đây là một số bước cơ bản để xác định biến môi trường bằng tệp .bashrc
thông qua một thiết bị đầu cuối:
# Append the line "export GOOGLE_ADS_CLIENT_ID=1234567890" to
# the bottom of your .bashrc file.
$ echo "export GOOGLE_ADS_CLIENT_ID=1234567890" >> ~/.bashrc
# Update your bash environment to use the most recently updated
# version of your .bashrc file.
$ src ~/.bashrc
Bạn cũng có thể đặt biến môi trường trong phiên bản dòng lệnh ngay từ dòng lệnh:
$ export GOOGLE_ADS_CLIENT_ID=1234567890
$ echo $GOOGLE_ADS_CLIENT_ID
1234567890
Phương thức load_from_env
tải dữ liệu cấu hình từ thuộc tính environ
trên mô-đun os
tích hợp sẵn của Python. Ví dụ:
os.environ["GOOGLE_ADS_CLIENT_ID"]
Dưới đây là ví dụ về cách khởi tạo một thực thể ứng dụng bằng cấu hình từ các biến môi trường:
from google.ads.googleads.client import GoogleAdsClient
client = GoogleAdsClient.load_from_env()
Để định cấu hình logging
thông qua các biến môi trường, giá trị cấu hình phải là một đối tượng JSON khớp với cấu trúc của các khoá YAML trong tệp cấu hình mẫu google-ads.yaml
.
Sau đây là ví dụ về cách thiết lập thông số này bằng tệp .bashrc
:
export GOOGLE_ADS_LOGGING='{
"version": 1,
"disable_existing_loggers": false,
"formatters": {
"default_fmt": {
"format": "[%(asctime)s - %(levelname)s] %(message).5000s",
"datefmt": "%Y-%m-%d %H:%M:%S"
}
},
"handlers": {
"default_handler": {
"class": "logging.StreamHandler",
"formatter": "default_fmt"
}
},
"loggers": {
"": {
"handlers": ["default_handler"],
"level": "INFO"
}
}
}'
Cấu hình bằng chuỗi YAML
Nếu đã đọc tệp YAML vào bộ nhớ, bạn có thể cung cấp tệp đó trực tiếp cho ứng dụng khi khởi chạy. Để thực hiện việc này, bạn chỉ cần sử dụng phương thức load_from_string
.
from google.ads.googleads.client import GoogleAdsClient
with open("/path/to/yaml", "rb") as handle:
yaml = handle.read()
client = GoogleAdsClient.load_from_string(yaml)
Cấu hình sử dụng dict
Bạn có thể truyền trực tiếp dict
đến phương thức load_from_dict
. Ví dụ:
from google.ads.googleads.client import GoogleAdsClient
credentials = {
"developer_token": "abcdef123456",
"refresh_token": "1//0abcdefghijklABCDEF",
"client_id": "123456-abcdef.apps.googleusercontent.com",
"client_secret": "aBcDeFgHiJkL"}
client = GoogleAdsClient.load_from_dict(credentials)
Các trường cấu hình
Cấu hình thư viện ứng dụng hỗ trợ các trường sau.
Các trường chung (những tên này giống nhau cho dù bạn đang sử dụng cấu hình YAML hay dict):
refresh_token
: Mã thông báo làm mới OAuth của bạn.client_id
: Mã ứng dụng khách OAuth của bạn.client_secret
: Khoá bí mật ứng dụng khách OAuth của bạn.developer_token
: Mã thông báo dành cho nhà phát triển để truy cập vào API.login_customer_id
: Xem tài liệu về mã khách hàng đăng nhập.linked_customer_id
: Xem tài liệu về mã khách hàng được liên kết.json_key_file_path
(trước đây làpath_to_private_key_file
): Đường dẫn đến tệp khoá riêng tư cục bộ. Thông tin này dùng để xác thực bằng tài khoản dịch vụ. Xem tài liệu về Tài khoản dịch vụ OAuth2.impersonated_email
(trước đây làdelegate_account
): Email tài khoản được dùng làm email uỷ quyền. Thông tin này dùng để xác thực bằng tài khoản dịch vụ. Xem tài liệu về Tài khoản dịch vụ OAuth2.logging
: Cấu hình ghi nhật ký. Các trường ghi nhật ký được mô tả bên dưới.http_proxy
: Xem tài liệu về Proxy.use_proto_plus
: Có sử dụng thông báo proto-plus hay không. Xem tài liệu về Thông báo Protobuf.
Các trường chung dưới dạng biến môi trường:
GOOGLE_ADS_CONFIGURATION_FILE_PATH
GOOGLE_ADS_REFRESH_TOKEN
GOOGLE_ADS_CLIENT_ID
GOOGLE_ADS_CLIENT_SECRET
GOOGLE_ADS_DEVELOPER_TOKEN
GOOGLE_ADS_LOGIN_CUSTOMER_ID
GOOGLE_ADS_LINKED_CUSTOMER_ID
GOOGLE_ADS_JSON_KEY_FILE_PATH
(trước đây làGOOGLE_ADS_PATH_TO_PRIVATE_KEY_FILE
)GOOGLE_ADS_IMPERSONATED_EMAIL
(trước đây làGOOGLE_ADS_DELEGATE_ACCOUNT
)GOOGLE_ADS_LOGGING
GOOGLE_ADS_HTTP_PROXY
GOOGLE_ADS_USE_PROTO_PLUS
Các trường ghi nhật ký (là các trường bên dưới trường cấu hình logging
) được lấy trực tiếp từ mô-đun tích hợp logging.config
vì thư viện sẽ truyền trực tiếp tất cả các trường trong không gian tên logging
đến phương thức logging.config.dictConfig
. Hãy xem hướng dẫn ghi nhật ký để biết toàn bộ thông tin chi tiết.
version
: Giá trị số nguyên đại diện cho phiên bản giản đồ.disable_existing_loggers
: Liệu trình ghi nhật ký được định cấu hình ở nơi khác trong ứng dụng có bị tắt hay không.formatters
: Từ điển xác định các loại trình định dạng.handlers
: Từ điển xác định các trình xử lý khác nhau, kiểm soát nơi ghi nhật ký và trình định dạng nào sẽ được sử dụng.loggers
: Từ điển xác định các loại trình ghi nhật ký, bao gồm trình xử lý và cấp độ nhật ký.