0

I am trying to implement the IFTTT in my website. I have created the Service. I have created the API for status and test setup check with given type, like

API-> abc.com/api/ifttt/v1/status & abc.com/api/ifttt/v1/test/setup

  1. Using CI and routing for this purpose.
  2. Added following header in it Host, COntent-type, IFTTT-Channel-Key, Accept-Encoding
  3. Channel key is taken when creating the applet as i remember. its at the end of an url

But in response i am getting following error for status check when doing the endpoint test - Valid request is in green. - with invalid channel key in red with status code 401 is shown

Please help me out. Thanks,

Purushottam zende
  • 552
  • 1
  • 6
  • 20

1 Answers1

4

For the status/setup endpoint test :

  • valid request is checked when your return status code 200 when a correct IFTTT-Channel-Key is sent in the headers
  • with invalid channel key is checked when you return status code 401 when an incorrect IFTTT-Channel-Key is sent in the headers

For instance a request with invalid channel key would be :

Request :

GET https://example.com/api/ifttt/v1/status HTTP/1.1
Accept: application/json
Accept-Charset: utf-8
Accept-Encoding: gzip, deflate
User-Agent: IFTTT-Protocol/v1
IFTTT-Test-Mode: 1
IFTTT-Channel-Key: INVALID

Response:

HTTP/1.1 401 Unauthorized
date: Fri, 07 Apr 2017 23:04:28 GMT
server: Apache/2.4.10 (Debian)
content-type: application/json
vary: Accept-Encoding
content-length: 0
connection: close

You have to check that IFTTT-Channel-Key header value and send status code 200 if it's correct & 401 if incorrect.

IFTTT-Channel-Key is the Service API Key you can find under API/General tab :

enter image description here

Service API key is unique per channel

Bertrand Martel
  • 42,756
  • 16
  • 135
  • 159
  • i tried by putting the service key also, bu its not working, i am getting same response code. – Purushottam zende Apr 09 '17 at 07:17
  • Did you check the ifttt key header and return 401 when it doesnt match the service key ? – Bertrand Martel Apr 09 '17 at 12:49
  • I am confused a little. I have made the file for status. I put the header flags including the ifttt Service key. And then i check from IFTTT for Endpoint Testing. I am not using any type of authentication yet. Do i need to check for any kind of key from IFTTT for status also. Please guide. – Purushottam zende Apr 10 '17 at 04:33
  • For the /status & /setup endpoint, when you handle the request do the following : check that header `IFTTT-Channel-Key` is present, check that `IFTTT-Channel-Key` is equal to your service API key (if not return 401 unauthorized), return the stuff according to the API (status or endpoint). This is not about authentication, this is about returning 401 status code when the request you handle from IFTTT hasn't the right value for `IFTTT-Channel-Key` header – Bertrand Martel Apr 10 '17 at 06:46
  • got the mistake, IFTTT was sending 2 request, one valid and other invalid, which i was not checking. Now it works correct for status, test/status and user info. But again got struck in triggers. Its sending 7 requests and not able to figure diffrecne between each one except the Authorization key. – Purushottam zende Apr 10 '17 at 15:11