python - 使用 Python、Django 和 Graph 更新联系人
问题描述
我正在尝试在使用 Django 创建的个人资料页面中使用 Python 和 Microsoft Graph 更新联系人。
我可以访问联系人并获取我需要的所有数据,但是我不知道如何更新这些字段。
我能找到的唯一信息是在 Graph 网站上,但是我不知道如何将其转换为可用代码:
PATCH PATCH https://graph.microsoft.com/beta/me/contacts/
Content-type: application/json
{
"title": "Mr",
"givenName": "Steve"
}
我认为有一种方法可以将它作为一个简单的链接放在一起,但我无法解决。我尝试了以下方法:
PATCH https://graph.microsoft.com/beta/me/contacts/{id}/title/Mr
PATCH https://graph.microsoft.com/beta/me/contacts/{id}/title:Mr
PATCH https://graph.microsoft.com/beta/me/contacts/{id}/title/$value==Mr
但它们都会产生错误
Microsoft 网站上没有使用 Python 执行此操作的教程,而且很难找到任何关于它的信息。所以希望有人能帮忙。
干杯!
!!!!!!!!!!!!!!!更新 !!!!!!!!!!!!!!!!!!
这是我当前的代码,但遗憾的是它什么也没做:
在我的views.py中:
def profile(request):
if request.session['has_id']==False:
contact_id = request.session['contact_id'] = request.POST.get('edit')
request.session['has_id'] = True
else:
contact_id = request.session['contact_id']
context = ct.profile(request,id=request.session.get('contact_id'),init=initialize_context,get_tok=get_token)
if request.method=="PATCH":
ct.update(contact_id,'title',request.PATCH.get('title'))
return render(request, 'tutorial/profile.html', context)
和我的更新:
def update(id,key,value):
url = '{}/me/contacts/{}'.format(graph_url,id)
payload = {key : value}
head = {
"Content-type" : "application/json",
}
requests.patch(url=url,data=payload,headers=head)
解决方案
终于解决了,我以为我昨天尝试过这样的事情,但显然没有。
这是怎么做的!
视图.py
def profile(request):
if request.session['has_id']==False:
contact_id = request.session['contact_id'] = request.POST.get('edit')
request.session['has_id'] = True
else:
contact_id = request.session['contact_id']
context = ct.profile(request,id=request.session.get('contact_id'),init=initialize_context,get_tok=get_token)
if request.method=="PATCH":
ct.update(contact_id,'title',request.PATCH.get('title'))
return render(request, 'tutorial/profile.html', context)
联系人助手.py:
def update(token,id,key,value):
graph_client = OAuth2Session(token=token)
url = '{}/me/contacts/{}'.format(graph_url,id)
payload = {key : value}
graph_client.patch(url,data=json.dumps(payload),headers={'Content-type': 'application/json'})
显然,如果您正在查看此内容,您可能已经设置了 auth_helper.py 和 graph_helper.py,但如果您还没有设置,那么您应该前往 Microsoft Graph 网站并按照以下说明进行操作:
https://developer.microsoft.com/en-us/graph/get-started/python
推荐阅读
- php - 引导字体的 Yii2 BaseUrl
- python - 在python中求解线性方程
- javascript - 我们可以在他们的商家帐户的某处使用开关来忽略 URL 中的所有参数吗?
- bash - for 循环遍历名称中带有空格的文件
- javascript - 将下拉选项显示为扩展按钮 - PHP JS
- youtube-analytics-api - 仍然无法提高 YouTube Analytics API 配额?
- redis - 调试 Redisson 订阅超时
- odoo - 未知报告类型:xlsx:- Odoo 10
- javascript - 如何修改 ajax 函数的响应 url?
- java - Maven 重新打包传递依赖