当前位置: 首页 > 知识库问答 >
问题:

Google Analytics Management API-插入方法-权限不足HTTP 403

广晔
2023-03-14

我试图通过API向我的Google Analytics帐户添加用户,但代码产生了以下错误:

googleapiclient.errors.httperror:https://www.googleapis.com/analytics/v3/management/accounts/**accountid**/entityuserlinks?alt=json返回“权限不足&>”;

我对此帐户拥有管理员权限-管理用户。我可以通过Google Analytics接口添加或删除用户,但不能通过API。我还添加了服务帐户电子邮件到GA作为一个用户。作用域设置为Analytics.Manage.Users

null

def add_user(service):br> service.management().accountUserLinks().insert(accountid='xxxx',br>body=br>'permissions':br>'local':[br>'edit',br>]br>,br>'userref':br>'email':'abc.def@gmail.com'br>br>br>).execute()br>
除了TypeError,error:br>#在构造查询时处理错误。br>print'构造

任何帮助都将不胜感激。谢谢!!

共有2个答案

蒯宇定
2023-03-14

还请记住,您必须指定您想要使用的作用域,这里的示例(使用Google稍微修改的示例)默认定义了两个作用域,这两个作用域不允许插入用户(因为它们都给出只读权限),尝试这样做将导致“错误403禁止”。

下面的代码给出了所需的范围:

from apiclient.discovery import build
from googleapiclient.errors import HttpError
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')

        # Do something, e.g. get account users & insert new ones 
        # ...


def main():
    # Define the auth scopes to request.

    # Add here
    # https://www.googleapis.com/auth/analytics.manage.users
    # to be able to insert users as well:
    scopes = [
        'https://www.googleapis.com/auth/analytics.readonly',
        'https://www.googleapis.com/auth/analytics.manage.users.readonly',
    ]
    key_file_location = 'my_key_file.json'

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

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


if __name__ == '__main__':
    main()

问候,

HERRB92

孟智志
2023-03-14

问题是我使用了一个服务帐户,而我本应使用一个已安装的应用程序。我不需要一个服务帐户,因为我可以使用我自己的凭据访问。这对我来说是个窍门!

 类似资料:
  • e 单列的数据类型从 NUMBER(4) 更改为 VARCHAR2(4)。DBA对现有值进行了转换。 现在,当我们尝试使用proc*c代码将记录插入表中时,会出现错误“ORA-01031:权限不足”。 从SQLPLUS我们能够插入记录。一段时间后问题消失了。一旦DBA重建表,问题就消失了。 每次我们用新的更改刷新测试环境后,都会出现此问题。

  • 我按照谷歌云SQLSDK中的说明导入数据。 但当我使用命令更改信息时: 我收到以下错误 如何纠正此故障?

  • 情况: 我正在为我的应用测试Gmail API。 我已经测试了一些请求,它们工作正常。例如,获取消息、获取用户历史记录、获取草稿列表等。。 基本上所有只读请求都工作正常。 相反,我有一些与其他请求的权限相关的问题,例如当我必须编写或删除草稿时。 这是我得到的错误: 代码: 这是初始化应用程序的函数: 这是删除一份草稿的请求: 编辑: 我已尝试撤销权限并设置新凭据。初始化服务时声明的范围是: 如文件

  • 我只是因为将liquibase作为依赖项而收到了这个错误消息 原因:liquibase.exception.数据库异常: ORA-01031:权限不足[失败SQL:(1031)CREATE TABLE MYSCHMA. DATABASE CHANGELOGLOCK(ID INTEGER Not NULL, LOCKED NUMBER(1)Not NULL, LOCKGRANTED TIMESTAM

  • 我有以下规则: 所以基本上,我希望经过身份验证的用户能够读/写和集合。但当我创建一个用户并登录时,我会尝试写: 但我有一个错误: 不知道我做错了什么。任何帮助都将不胜感激——谢谢!

  • 我想查询用户的组。根据 https://graph.microsoft.io/en-us/docs/platform/rest 我执行以下步骤: > 获取代码