microsoftgraph / microsoftgraph/msgraph-sdk-python

directory_object.by_directory_object_id: 'str' object has no attribute 'get'

Đang mở
#237 6 bình luận 0 reaction 0 người được giao Xem trên GitHub

Chưa có ai nhận issue này.

Ngôn ngữ chính
Python
Star
630
Fork
96
Merge trung bình
15 giờ 20 phút
Pull request đã merge (30 ngày)
3

Mô tả

Python 3.10.12 and msgraph-core==1.0.0a4 and msgraph-sdk==1.0.0a12, on Ubuntu 20 LTS.

I'm trying to replace a working azure-graphrbac function with the replacement msgraph version - it's to find a displayName for Azure IAM Role Assignments. From the few examples for app-only usage, I thought this was what I needed, but I get an error from deep inside the library that str object has no attribute get.

From what I could tell the parameter to by_directory_object() is supposed to be a string. The self.app_client is the Graph object from this tutorial: https://learn.microsoft.com/en-us/graph/tutorials/python-app-only?tabs=aad&tutorial-step=5 which does successfully list users, but not call my function.

async def get_directoryobject_by_id(self, object_id: str) -> DirectoryObject | None:
    """Given an AD ID from a Role Assignment, figure out what it is"""
    try:
        thing = await self.app_client.directory_objects.by_directory_object_id(object_id).get()
        if thing:
            print(thing)
            return thing
    except APIError as e:
        print(e.error.message)

    return None

Where am I going wrong? Having the library code be generated and the README just point to the REST API is quite frustrating.

Full stacktrace follows:

Traceback (most recent call last):
  File "/home/howardwork/Work/collector/example.py", line 135, in <module>
    asyncio.run(main())
  File "/usr/lib/python3.10/asyncio/runners.py", line 44, in run
    return loop.run_until_complete(main)
  File "/usr/lib/python3.10/asyncio/base_events.py", line 649, in run_until_complete
    return future.result()
  File "/home/howardwork/Work/collector/example.py", line 101, in main
    await make_graph_call(graph)
  File "/home/howardwork/Work/collector/example.py", line 131, in make_graph_call
    await graph.get_directoryobject_by_id("05eb8c5a-a278-408e-a2b5-739f56c00888")
  File "/home/howardwork/Work/collector/example.py", line 59, in get_directoryobject_by_id
    thing = await self.app_client.directory_objects.by_directory_object_id(object_id).get()
  File "/home/howardwork/Work/collector/venv/lib/python3.10/site-packages/msgraph/generated/directory_objects/item/directory_object_item_request_builder.py", line 82, in get
    return await self.request_adapter.send_async(request_info, directory_object.DirectoryObject, error_mapping)
  File "/home/howardwork/Work/collector/venv/lib/python3.10/site-packages/kiota_http/httpx_request_adapter.py", line 123, in send_async
    result = root_node.get_object_value(model_type)
  File "/home/howardwork/Work/collector/venv/lib/python3.10/site-packages/kiota_serialization_json/json_parse_node.py", line 224, in get_object_value
    result = factory.create_from_discriminator_value(self)
  File "/home/howardwork/Work/collector/venv/lib/python3.10/site-packages/msgraph/generated/models/directory_object.py", line 32, in create_from_discriminator_value
    mapping_value_node = parse_node.get_child_node("@odata.type")
  File "/home/howardwork/Work/collector/venv/lib/python3.10/site-packages/kiota_serialization_json/json_parse_node.py", line 55, in get_child_node
    if self._json_node and self._json_node.get(identifier):
AttributeError: 'str' object has no attribute 'get'

Hướng dẫn đóng góp

Mở hướng dẫn đóng góp

Bắt đầu từ đâu

  1. Đọc hết issue, rồi đọc hướng dẫn đóng góp của dự án.
  2. Bình luận trên issue rằng bạn sẽ nhận — tránh hai người làm cùng một việc.
  3. Fork repository và làm thay đổi trên một nhánh.
  4. Mở pull request có tham chiếu số hiệu của issue.

Hướng nghiên cứu

Tái hiện lệnh gọi với Python 3.10.12, msgraph-core==1.0.0a4 và msgraph-sdk==1.0.0a12. Bắt đầu với generated/directory_objects/item/directory_object_item_request_builder.py và theo dõi response qua kiota_http/httpx_request_adapter.py, kiota_serialization_json/json_parse_node.py và generated/models/directory_object.py. Hoàn tất khi yêu cầu directory-object không còn phát sinh AttributeError đã được báo cáo và response của nó có thể được trả về.

Do mô hình lập chỉ mục viết ra từ nội dung của issue.

Đánh giá

Công nghệ
python
Lĩnh vực
api
Loại issue
Lỗi
Độ khó
3/5
Thời gian dự kiến
1-2 ngày
Mức độ hoạt động
Đình trệ
Độ rõ ràng
Khá rõ ràng
Mức phù hợp với người mới
35/100

Nhận issue mới trong hộp thư của bạn

Bản tóm tắt ngắn những issue GitHub phù hợp với người mới.