2017-05-03 63 views
-1

我已经设置了我的Photon来控制一个neopixel,并且想要根据用户通过SMS发送的参数更改颜色。获取粒子光子和Twilio之间的webhook

我知道如何使用Twilio POST webhook(hook1Ask()下面的工作)发送我的手机短信到我的手机,但我无法找到任何有关通信的任何其他方式(GET webhook for SMS )。

我读了particle docs on webhooks和Particle.subscribe,并且搜寻了互联网上的任何答案,但到目前为止,nada。

这里是我的代码:

//States keep it from sending too many messages 
 
# define STATE_1 1 
 
# define STATE_2 2  
 
int state = 1; 
 

 
//Variables to keep things tidy 
 
String HOOK_1_ASK = "HOOK_1_ASK"; 
 
String HOOK_1_REPLY = "HOOK_1_REPLY"; 
 
String data = String(10); 
 

 
void setup() 
 
{ 
 
    Serial.begin(9600); 
 
    Particle.subscribe("HOOK_1_REPLY", myHandler); 
 
} 
 

 
void loop() 
 
{ 
 
    hook1Ask(); 
 
    delay(100); 
 
} 
 

 

 
//*************************************************** 
 
// Webhook event trigger 
 
//*************************************************** 
 

 
void hook1Ask(){ 
 
    if(state == 1){ 
 
    String data = "What's your favorite color? 1=Blue 2=Green 3=Something else"; 
 
    Particle.publish("HOOK_1_ASK", data, PRIVATE); 
 
    state = STATE_2; 
 
    } 
 

 
} 
 

 
//*************************************************** 
 
// myHandler for the subscribe event 
 
//*************************************************** 
 

 
int i = 0; 
 

 
void myHandler(const char *event, const char *data) 
 
{ 
 
    i++; 
 
    Serial.print(i); 
 
    Serial.print(event); 
 
    Serial.print(", data: "); 
 
    if (data) 
 
    Serial.println(data); 
 
    else 
 
    Serial.println("NULL"); 
 
}

回答

0

Twilio开发者传道这里。

我不确定自己是否在这里,因为我没有使用过粒子,但似乎粒子术语中的“webhooks”是从粒子设备本身接收数据的粒子服务中的端点。

您可以通过Particle Cloud API向您的粒子进行外部API调用。这需要OAuth令牌进行身份验证,因此您无法直接将Twilio SMS Webhook(an HTTP request that Twilio sends when it receives an SMS message)连接到API。但是,您可以构建一个小型Web服务器,该服务器接收Twilio webhooks,然后向您提供需要的详细信息的Particle Cloud API的授权请求。

这有帮助吗?

+0

谢谢澄清!我忘了关闭这个循环,但是我最终发现了它。 TLDR我创建了一个Twilio和Heroku的红宝石应用程序,并使用粒子宝石让它与我的光子很好地搭配。 以下是我使用的宝石宝石的细节,以防万一任何人想看看:https://github.com/monkbroc/particlerb再次感谢! – MelissaP

+0

嘿@MelissaP,太棒了。我的回答是否足够帮助您将其标记为正确?如果你计划一篇博客文章,我很想看看你是如何实现这一目标的呢? – philnash