首页 > 解决方案 > 使用 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)

标签: pythondjangographmicrosoft-graph-api

解决方案


终于解决了,我以为我昨天尝试过这样的事情,但显然没有。

这是怎么做的!

视图.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


推荐阅读