WebHooks实践
in PHPlinux with 0 comment

WebHooks实践

in PHPlinux with 0 comment

WebHook实践

webhook介绍

用户通过自定义回调函数的方式来改变Web应用的一种行为,这些回调函数可以由不是该Web应用官方的第三方用户或者开发人员来维护,修改。通过Webhook,你可以自定义一些行为通知到指定的URL去。

其实说白了就是钩子,通常由一些事件触发。

例如 Github码云 的 webhook ,你可以自定义:当你本地的代码 push 时,就会自动触发这个钩子,它会向你指定的 URL 发送一个请求。假设请求由服务器接受后并由脚本自动 pull,由此就可以实现代码本地提交,服务器自动部署。

免去了 提交代码后还得再 SSH 到服务器只为了 pull 一下代码的功夫了。

又或者其他用户在你的项目下提出 Issue 或评论时,自动触发钩子,发送请求到 sm ,消息将由此接口主动推送到你的微信中。

如图:
Github 中 webhook 的请求和响应详情 ↓
enter image description here

我自己在服务器上脚本的日志记录 ↓
enter image description here

通过 sm 推送到微信中的截图 ↓
enter image description here
enter image description here

使用

文档和帮助

详细的帮助和文档见:

大概就是这样的:
在项目的 Setting 中找到左侧的 Webhooks ,按照提示填写你的接口 URL,需要在什么时候发送请求,ContentType 等参数。
然后你就在你的服务器配置这么一个简单的接口,接收来自 Github 和码云的请求,并处理就可以了。怎么处理那就是你自己的事情了。

如果你懒得写接口。这里推荐使用的我的接口:ServerMessenger ,绑定微信后可以将消息推送到你的微信上,当然这样的话只能起到通知的作用。详情可以去参考 ServerMessenger - Help

脚本

接口如何实现我就不写了。网上一抓一大把。还有现成的第三方服务可以选择。

我服务器上处理请求的脚本,仅供参考:

DATE=`date '+%Y-%m-%d %T'`
echo '======================================================================'
echo $DATE
cd /path/to/your/project/
A=$(sudo -u www git pull)
echo '——————————————————接口返回结果———————————————————————'
#发送curl请求到sm,将结果通知到我的微信上
curl -d "title=webhook_result&body=$A&app_key=your_app_key" "http://sm.rooot.me/send"
echo ''
echo '——————————————————git pull结果———————————————————————'
echo $A

最后

Responses
icon_mrgreen.gificon_neutral.gificon_twisted.gificon_arrow.gificon_eek.gificon_smile.gificon_confused.gificon_cool.gificon_evil.gificon_biggrin.gificon_idea.gificon_redface.gificon_razz.gificon_rolleyes.gificon_wink.gificon_cry.gificon_surprised.gificon_lol.gificon_mad.gificon_sad.gificon_exclaim.gificon_question.gif
  1. @

    Legally Stendra Drugs In Internet Visa cheapest cialis 20mg Viagra Acheter En Ligne Propecia Para Hombres Cialis Prezzo Migliore Prix Xenical Au Maroc Discount isotretinoin cheapest levitra Baclofene Internet Cephalexin Lupin Amoxicillin 500 Mg Used For cheap cialis online Little Blue Pill For Men Viagra Anziani cialis Buy Celexa With No Prescription Authentioc Brand Viagra

    Reply