microsoftgraph / microsoftgraph/msgraph-beta-sdk-python

"Syntax error at position 88" error response

未关闭
#1,038 0 条评论 0 个 reaction 已指派 0 人 在 GitHub 查看

还没有人认领这个 Issue。

status:waiting-for-triage type:bug
主要语言
Python
星标
44
派生
16
平均合并
20 小时 39 分钟
30 天内合并 PR
3

描述

Describe the bug

I am trying to use the msgraph-beta-sdk module to get meeting transcripts for a specific user. It errors with a syntax error message from the server along with a 400 status code. Worth noting that I got this same error from the non-beta module also.

Using the credentials/user_id I've referenced in the code snippet I was able to pull back valid data when posting to f"https://graph.microsoft.com/beta/users/{user_id}/onlineMeetings/getAllTranscripts(meetingOrganizerUserId='{user_id}')", so I am confident this isn't a permissions issue.

Thanks!

Expected behavior

A valid set of transcripts

How to reproduce

`from azure.identity import ClientSecretCredential
from msgraph_beta import GraphServiceClient
from datetime import datetime
import urllib.request
import urllib.parse
import json

login and lookup details

tenant_id = ""
client_id =""
client_secret =""
user_id = ""

Create credential and Graph client (app-only auth)

credential = ClientSecretCredential(
tenant_id=tenant_id,
client_id=client_id,
client_secret=client_secret,
)

scopes = ["https://graph.microsoft.com/.default"]
client = GraphServiceClient(credentials=credential, scopes=scopes)
print("Graph token initialized successfully.")
await client.users.by_user_id(user_id).online_meetings.get_all_transcriptsmeeting_organizer_user_id_meeting_organizer_user_id_with_start_date_time_with_end_date_time.get()`

SDK Version

No response

Latest version known to work for scenario above?

1.58.0

Known Workarounds

Just discovered this and now I am curious if this is the intended pattern and I just missed it. If chain a call to with_url I end up putting my filters there and I get back my strong typed result without an error

wu = f"https://graph.microsoft.com/beta/users/{user_id}/onlineMeetings/getAllTranscripts(meetingOrganizerUserId='{user_id}')"
await client.users.by_user_id(user_id).online_meetings.get_all_transcriptsmeeting_organizer_user_id_meeting_organizer_user_id_with_start_date_time_with_end_date_time.with_url(wu).get()
Debug output

APIError
Code: 400
message: None
error: MainError(additional_data={}, code='BadRequest', details=None, inner_error=InnerError(additional_data={}, client_request_id='b07e3e18-aa42-4058-a3cf-1ff04185ab33', date=datetime.datetime(2026, 4, 27, 17, 40, 4), odata_type=None, request_id='de6393da-6230-4a5a-bc61-8e4adf989035'), message="Syntax error at position 88 in 'meetingOrganizerUserId='@meetingOrganizerUserId'startDateTime=@startDateTimeendDateTime=@endDateTime'.", target=None)

Click to expand log
await client.users.by_user_id(user_id).online_meetings.get_all_transcriptsmeeting_organizer_user_id_meeting_organizer_user_id_with_start_date_time_with_end_date_time.get()
File /local_disk0/.ephemeral_nfs/envs/pythonEnv-607f871d-6826-47c5-a79e-c958f6292d9e/lib/python3.12/site-packages/msgraph_beta/generated/users/item/online_meetings/get_all_transcriptsmeeting_organizer_user_id_meeting_organizer_user_id_with_start_date_time_with_end_date_time/get_all_transcriptsmeeting_organizer_user_id_meeting_organizer_user_id_with_start_date_time_with_end_date_time_request_builder.py:53, in GetAllTranscriptsmeetingOrganizerUserIdMeetingOrganizerUserIdWithStartDateTimeWithEndDateTimeRequestBuilder.get(self, request_configuration)
     50     raise Exception("Http core is null") 
     51 from .get_all_transcriptsmeeting_organizer_user_id_meeting_organizer_user_id_with_start_date_time_with_end_date_time_get_response import GetAllTranscriptsmeetingOrganizerUserIdMeetingOrganizerUserIdWithStartDateTimeWithEndDateTimeGetResponse
---> 53 return await self.request_adapter.send_async(request_info, GetAllTranscriptsmeetingOrganizerUserIdMeetingOrganizerUserIdWithStartDateTimeWithEndDateTimeGetResponse, error_mapping)
File /local_disk0/.ephemeral_nfs/envs/pythonEnv-607f871d-6826-47c5-a79e-c958f6292d9e/lib/python3.12/site-packages/kiota_http/httpx_request_adapter.py:191, in HttpxRequestAdapter.send_async(self, request_info, parsable_factory, error_map)
    188     parent_span.add_event(RESPONSE_HANDLER_EVENT_INVOKED_KEY)
    189     return await response_handler.handle_response_async(response, error_map)
--> 191 await self.throw_failed_responses(response, error_map, parent_span, parent_span)
    192 if self._should_return_none(response):
    193     return None
File /local_disk0/.ephemeral_nfs/envs/pythonEnv-607f871d-6826-47c5-a79e-c958f6292d9e/lib/python3.12/site-packages/kiota_http/httpx_request_adapter.py:573, in HttpxRequestAdapter.throw_failed_responses(self, response, error_map, parent_span, attribute_span)
    564     else:
    565         exc = APIError(
    566             (
    567                 "The server returned an unexpected status code and the error registered"
   (...)
    571             response_headers,  # type: ignore
    572         )
--> 573     raise exc
    574 finally:
    575     _throw_failed_resp_span.end()
Configuration

No response

Other information

No response

贡献指南

打开贡献指南

从这里开始

  1. 先读完整个 Issue,再读项目的贡献指南。
  2. 在 Issue 下留言说明你要接手 —— 这能避免两个人做同样的事。
  3. Fork 仓库,在一个分支上完成修改。
  4. 提交 Pull Request,并在描述里引用这个 Issue 编号。

调研方向

从 traceback 中显示的生成的 request builder 开始:users/item/online_meetings/get_all_transcriptsmeeting_organizer_user_id_meeting_organizer_user_id_with_start_date_time_with_end_date_time/get_all_transcriptsmeeting_organizer_user_id_meeting_organizer_user_id_with_start_date_time_with_end_date_time_request_builder.py。重现该调用,并将其 request 与直接的 Graph URL 以及可正常工作的 with_url workaround 进行比较。当类型化 SDK 调用无需 with_url 即可请求有效的 transcripts 时,即表示完成。

由索引模型根据 Issue 内容生成。

评估

技术栈
python
领域
api
Issue 类型
缺陷
难度
3/5
预计耗时
1-2 天
活跃度
冷清
描述清晰度
基本清楚
新手友好度
55/100

把新 issue 发到你的邮箱

精选适合新手参与的 GitHub issue 摘要。