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!

0

1 Answer 1

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'
}
Sign up to request clarification or add additional context in comments.

1 Comment

That fixed it! Thank you very much!

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.