1

I am trying to integrate Freshsales functionality within my Django server in order to create leads, schedule appointments, etc. Freshsale's API Documentation in Python lacks detail, however. Here is a link to their API functionality using curl commands: https://www.freshsales.io/api/.

Their python code is as follows:

from .freshsales_exception import FreshsalesException
import requests
import json

def _request(path, payload):
    try:
        data = json.dumps(payload)
        headers = { 'content-type': 'application/json', 'accept': 'application/json' }
        resp = requests.post(path, data=data, headers=headers)
        if resp.status_code != 200:
            raise  FreshsalesException("Freshsales responded with the status code of %s" % str(resp.status_code))
    except requests.exceptions.RequestException as e:
        raise FreshsalesException(e.message)

In the case of the curl command, for example, to create an appointment, is:

curl -H "Authorization: Token token=sfg999666t673t7t82" -H "Content-Type: application/json" -d '{"appointment":{"title":"Sample Appointment","description":"This is just a sample Appointment.","from_date":"Mon Jun 20 2016 10:30:00 GMT+0530 (IST)","end_date":"Mon Jun 20 2016 11:30:00 GMT+0530 (IST)","time_zone":"Chennai","location":"Chennai, TN, India","targetable_id":"115765","targetable_type":"Lead", "appointment_attendees_attributes":[{ "attendee_type":"FdMultitenant::User","attendee_id":"223"},{"attendee_type":"FdMultitenant::User","attendee_id":"222"},{"attendee_type":"Lead","attendee_id":"115773"}] }}' -X POST 

I understand that I need to use the requests library to make a post request. However, I do not understand how I need to format the request. The furthest extent I understand to list all appointments, for example, is for my request to be the following:

my_request = "https://mydomain.freshsales.io/api/appointments/token=myexampletoken"

response = requests.post(myrequest)

I am unsure of how to create the payload to be accepted by the API to create an appointment. How might I use the requests library to accomplish this? I have searched for how to execute curl commands in Python, and the only answers I ever saw were to use the requests library. Any help is greatly appreciated!

Ahtisham
  • 9,170
  • 4
  • 43
  • 57
JCoder96
  • 178
  • 13

1 Answers1

1

You're missing the Authorization header. You just need to translate curl headers -H to python code. This should work, according to your syntax.

headers = {
     'content-type': 'application/json', 
     'accept': 'application/json' 
     'Authorization': 'Token token=sfg999666t673t7t82'
}
May.D
  • 1,832
  • 1
  • 18
  • 34