-
Notifications
You must be signed in to change notification settings - Fork 15
/
Copy pathaccounts_provision_account_ticket.py
97 lines (76 loc) · 3.77 KB
/
accounts_provision_account_ticket.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
#!/usr/bin/env python
# Copyright 2021 Google LLC All Rights Reserved.
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
"""Google Analytics Admin API sample application which provisions the Google
Analytics account creation ticket and prints the Terms of Service link that
can be used by an end user to complete the account creation flow.
This sample invokes the provision_account_ticket() method of the Google
Analytics Admin API to start the Google Analytics account creation
process for a user. This method returns an account ticket which shall be used
to generate the Terms Of Service url that an end user should visit in order
to accept the Terms and complete the account creation flow.
You have to authenticate as an end user in order to run this sample. Only
the authenticated user will be able to use the Terms of Service url generated
as part of the account provisioning flow.
To authenticate as an end user prior to running this sample, use the
gcloud tool:
gcloud auth application-default login --scopes=https://www.googleapis.com/auth/analytics.edit --client-id-file=PATH_TO_YOUR_CLIENT_SECRET_JSON
See https://developers.google.com/analytics/devguides/config/admin/v1/rest/v1alpha/accounts/provisionAccountTicket
for more information.
"""
# [START analyticsadmin_accounts_provision_account_ticket]
from google.analytics.admin import AnalyticsAdminServiceClient
from google.analytics.admin_v1alpha.types import Account, ProvisionAccountTicketRequest
def run_sample():
"""Runs the sample."""
# !!! ATTENTION !!!
# Running this sample may change/delete your Google Analytics account
# configuration. Make sure to not use the Google Analytics account ID from
# your production environment below.
# TODO(developer): Replace this variable with a redirect URI where the user
# will be sent after accepting Terms of Service. Must be configured in
# Developers Console as a Redirect URI
redirect_uri = "YOUR-REDIRECT-URI"
provision_account_ticket(redirect_uri)
def provision_account_ticket(redirect_uri: str, transport: str = None):
"""
Provisions the Google Analytics account creation ticket.
Args:
redirect_uri(str): Redirect URI where the user will be sent
after accepting Terms of Service. Must be configured in
Developers Console as a Redirect URI.
transport(str): The transport to use. For example, "grpc"
or "rest". If set to None, a transport is chosen automatically.
"""
client = AnalyticsAdminServiceClient(transport=transport)
response = client.provision_account_ticket(
ProvisionAccountTicketRequest(
account=Account(display_name="Test Account", region_code="US"),
redirect_uri=redirect_uri,
)
)
print("Result:")
print(f"Account ticket id: {response.account_ticket_id}")
print(
f"You can now open the following URL to complete the account creation:"
f"https://analytics.google.com/analytics/web/?provisioningSignup=false#/termsofservice/{response.account_ticket_id}"
)
print()
print(
"Attention: make sure your browser is signed in to the same user "
"account that was used to provision the ticket."
)
# [END analyticsadmin_accounts_provision_account_ticket]
if __name__ == "__main__":
run_sample()