微信里检索kintone记录信息的方法

云朵
云朵 原创
2017-11-29 14:13:27 2258浏览

概要

近几年来使用微信公众号的人越来越多,我们的生活方式也随之发生了巨大变化。

kintone自然也不甘落后,紧跟时代步伐。

本篇文章将为大家介绍在微信公众号里检索kintone记录信息的方法。

简单地说,就是我们将在kintone里新建一个管理企业信息的应用,然后在微信公众号里输入关键字来检索该应用里的信息。

由于正式公众号需要认证,这次我们暂时使用微信公众账号测试号。

完成后的样子

webwxgetvideo.gif

准备

kintone设置

首先根据上面的设想来创建kintone应用。我创建的是简易版的企业信息管理应用。

字段类型字段名称字段代码备注
创建人创建人创建人
创建时间创建时间创建时间
单行文本框公司名company

设为必填项

值为唯一

单行文本框公司代表representative
单行文本框地域area
单行文本框所在地address
单行文本框公司电话tel

应用创建成功后,输入三条数据

微信公众号设置

1. 访问微信公众平台,点击 “进入微信公众账号测试号申请系统”,申请微信公众账号测试号

2. 进入微信公众测试号

在测试号管理页面里,我们可以看到 appID 和 appsecret。把这两个信息记下来,接下来有用。

1048079c.png

3. 填写接口配置信息

此信息需要有自己的服务器资源。网上的云服务器资源很多,大家可以自由选择。

如果大家有带公网ip的服务器也可以使用,下面我们主要使用php环境(具体服务器配置方式省略)

接下来写服务器验证代码,使之能正确响应微信发送的Token验证。详细可以参考接入指南

1048079d.png

代码

<?php
define("APPID", "wxcbfaxxxxxx1814d4");  //appID
define("APPSECRET", "604113xxxxxxxxxxxxxxx0bda2240c47"); //appsecret 
define("TOKEN", "cnDevNet"); //Token

require "./wechat.inc.php";
$wechat = new WeChat(APPID, APPSECRET, TOKEN);
$wechat->valid(); //Token验证
?>
class WeChat
{
    private $_appid;
    private $_appsecret;
    private $_token;
    
    public function __construct($appid, $appsecret, $token)
    {
        $this->_appid = $appid;
        $this->_appsecret = $appsecret;
        $this->_token = $token;
    }

    public function valid()
    {
        $echoStr = $_GET["echostr"];

        //valid signature , option

        if($this->checkSignature())

        {
            echo $echoStr;
            exit;
        }
    }

    private function checkSignature()
    {
        $signature = $_GET["signature"];
        $timestamp = $_GET["timestamp"];
        $nonce = $_GET["nonce"];

        $token = $this->_token;
        $tmpArr = array($token, $timestamp, $nonce);
        sort($tmpArr);
        $tmpStr = implode( $tmpArr );
        $tmpStr = sha1( $tmpStr );
        
        if( $tmpStr == $signature )
        {
            return true;
        }
        else
        {
            return false;
        }
    }
}

点击接口配置信息的 “修改”,填好URL 和 Token后,点击 “提交” 按钮。

看到以下信息的话,说明配置成功。

和kintone关联

下面是主要的原理图。微信将消息转发给服务器,服务器和kintone交互后,将结果再返回给公众号。

和kintone的交互,我们主要使用curl工具和kintone的API来检索记录,具体可以参考php文档kintone API:批量获取记录(在查询中指定条件)

// 请求头部
$header = array(

    "Host: " . $this->_subDomain . ".cybozu.com:443",
    "X-Cybozu-API-Token: " . $this->_apiToken
);

$queryStr = 'company like "'. $keyword. '"';
$params = "?app=$this->_appId&query=".urlencode($queryStr)
            . "&fields[0]=". urlencode("company")
            . "&fields[1]=". urlencode("representative")
            . "&fields[2]=". urlencode("area")
            . "&fields[3]=". urlencode("address")
            . "&fields[4]=". urlencode("tel");

$url = "https://" . $this->_subDomain . ".cybozu.com/k/v1/records.json". $params;

$response = $this->_request($url, true, "get", null, $header); //curl提交
$result = json_decode($response, true);

if (count($result["records"]) > 0) {
    foreach($result["records"] as $value) {
        if ($contentStr != '') {
            $contentStr .= "\n\n";
        }
        $contentStr .= "公司名:".     $value["company"]["value"]."\n"
                        . "公司代表:". $value["representative"]["value"]."\n"
                        . "地域:".     $value["area"]["value"]."\n"
                        . "所在地:".   $value["address"]["value"]."\n"
                        . "电话:".     $value["tel"]["value"];
    }
}
else {
    $contentStr = "未找到该企业信息";
}

详细代码

全部的代码可点这里查看

参考

微信公众平台技术文档

以上就是微信里检索kintone记录信息的方法的详细内容,更多请关注php中文网其它相关文章!

声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn核实处理。