Python и Dynamics CRM: использование веб-интерфейса - PullRequest
0 голосов
/ 10 июля 2019

Я бы хотел начать создавать оповещения по электронной почте из наших данных CRM с помощью Python. Я знаю, что Dynamics365 имеет некоторые возможности оповещения, но я хотел бы сделать больше. В идеале я хотел бы использовать API CRM. Я пытаюсь запустить следующий код и получаю сообщение об ошибке.

Это первый старт для меня. У меня нет Azure, я бы предпочел найти решение, позволяющее получать данные CRM только с помощью API и информации для входа.

import requests
from requests_ntlm import HttpNtlmAuth
import json

username = 'username'
userpassword = 'password'

#set these values to query your crm data
crmwebapi = 'API URL'
crmwebapiquery = '/contacts?$select=fullname,contactid'

crmrequestheaders = {
    'OData-MaxVersion': '4.0',
    'OData-Version': '4.0',
    'Accept': 'application/json',
    'Content-Type': 'application/json; charset=utf-8',
    'Prefer': 'odata.maxpagesize=500',
    'Prefer': 'odata.include- 
       annotations=OData.Community.Display.V1.FormattedValue'
}

print('making crm request . . .')
crmres = requests.get(crmwebapi+crmwebapiquery, 
headers=crmrequestheaders,auth=HttpNtlmAuth(username,userpassword))
print('crm response received . . .')
try:
    print('parsing crm response . . .')
    crmresults = crmres.json()
    for x in crmresults['value']:
        print (x['fullname'] + ' - ' + x['contactid'])
except KeyError:
    print('Could not parse CRM results')

'' '

Похоже, что он успешно соединяется, но не возвращает "значение" для crm.results ??

runfile ('F: / CRM / python CRM query.py', wdir = 'F: / CRM'), создающий crm запрос . , , Ответ CRM получен. , , разбор ответа crm. , , Traceback (последний вызов был последним):

Файл "", строка 1, в runfile ('F: / CRM / python CRM query.py', wdir = 'F: / CRM')

Файл "C: \ Users \ Гиттель \ AppData \ Local \ Continuum \ anaconda3 \ Lib \ сайт-пакеты \ spyder_kernels \ подгоняет \ spydercustomize.py", строка 786, в runfile execfile (имя файла, пространство имен)

Файл "C: \ Users \ Гиттель \ AppData \ Local \ Continuum \ anaconda3 \ Lib \ сайт-пакеты \ spyder_kernels \ подгоняет \ spydercustomize.py", строка 110, в execfile exec (compile (f.read (), filename, 'exec'), пространство имен)

Файл "F: / CRM / python CRM query.py", строка 26, в crmresults = crmres.json ()

Файл "C: \ Users \ Гиттель \ AppData \ Local \ Continuum \ anaconda3 \ Lib \ сайт-пакеты \ запросы \ models.py", строка 897, в json return complexjson.loads (self.text, ** kwargs)

Файл "C: \ Users \ Гиттель \ AppData \ Local \ Continuum \ anaconda3 \ Lib \ json__init __ ру.", линия 348, в нагрузках возвращение _default_decoder.decode (s)

Файл "C: \ Users \ Гиттель \ AppData \ Local \ Continuum \ anaconda3 \ Lib \ JSON \ decoder.py", строка 337, в декодировании obj, end = self.raw_decode (s, idx = _w (s, 0) .end ())

Файл "C: \ Users \ Гиттель \ AppData \ Local \ Continuum \ anaconda3 \ Lib \ JSON \ decoder.py", строка 355, в raw_decode повысить JSONDecodeError («Ожидаемое значение», s, err.value) из None

JSONDecodeError: Ожидаемое значение '' '

1 Ответ

0 голосов
/ 12 июля 2019

Если вы хотите использовать Dynamics Crm webapi, вам нужно зарегистрировать приложение в Azure AD и назначить соответствующее разрешение. Затем вы получите Appid, используя который вы можете вызвать API и выполнить операцию. Обо всем этом есть хорошее видео. Вот ссылка https://youtu.be/Td7Bk3IXJ9s

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...