目录

  • moodle plugin慕课网插件开发笔记 1
    • 安装环境
    • Dialogflow PHP API
    • 困难重重
    • 开始上手
    • 数据库操作
    • PHP-DIALOGFLOW API
    • 动态加载

moodle plugin慕课网插件开发笔记 1

参考文章:http://t.csdn.cn/9KgS1
session原理: https://www.cnblogs.com/lisqiong/p/10172780.html
因为毕设,重新捡起 php,开始敲代码。

安装环境

先用bitnami的stack安装moodle,一键架服务器和数据库,非常方便,在阿里云上linux版本装的moodle 3.10.0,在本地装的4.0.0。

Dialogflow PHP API

moodle用的是php语言,目前没找到dialogflow和php的官方api,还好有万能的github,看了半天总算是把dialogflow搞定,能回复纯文字信息即可。

  • 推荐谁的api?

    • https://github.com/eristemena/dialogflow-fulfillment-webhook-php 种类多,品种全;
    • https://github.com/ryderdamen/PHP-DialogFlow-Webhooks-Fulfillment-API 精巧简单;
  • 为什么不用官方的service account?问就是穷鬼没visa card。
  • 为什么不用nodejs?编写前端比较麻烦,直接用的kommunicate的免费一个月机器人做前端交互。

困难重重

  1. 先看教程,https://docs.moodle.org/dev/Tutorial,学到了plugin的分类,有很多,但是不知道自己用哪个比较好。block相对比较好写,结构简单不涉及与后台数据的联通,容易上手,但我的需求需要后台……
  2. 跟着写了个mod类的demo,但是安装的时候总是报错。
  3. 下载github上生成插件的骨架插件pluginskel,安装生成插件后yaml文件注释的内容过多太难懂,放弃。
  4. 后来在youtube上找到了Moodle plugin developer tutorial系列教程。

开始上手

  1. 在/moodle/htdocs/local/目录下直接新建文件夹作为插件名称
  2. 先写版本文件 version.php
<?php
// This file is part of the Local Chatbot Dialogflow plugin
//
// Moodle is free software: you can redistribute it and/or modify
// it under the terms of the GNU General Public License as published by
// the Free Software Foundation, either version 3 of the License, or
// (at your option) any later version.
//
// Moodle is distributed in the hope that it will be useful,
// but WITHOUT ANY WARRANTY; without even the implied warranty of
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
// GNU General Public License for more details.
//
// You should have received a copy of the GNU General Public License
// along with Moodle.  If not, see <http://www.gnu.org/licenses/>./**
* This plugin verify group user ldap and create
* cohort same name specified settings
*
* @package    local
* @copyright  20XX 开发者姓名 邮箱
* @license    http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later
*/defined('MOODLE_INTERNAL') || die();/** @var plugin $plugin */
$plugin->version  = 2022100400;//版本号
// moodle version
//$plugin->requires = 2013051400;
$plugin->release = '0.1.0';//版本号
$plugin->maturity = MATURITY_ALPHA;
$plugin->component = 'local_message';//插件类_名称
  1. 然后在控制台调用 htdocs/admin/cli/upgrade.php 升级moodle
  2. 新建lib.php直接写方法,我这里是调用了Notification的通知
<?php
//上述的文件头略function local_message_before_footer() {\core\notification::add("test Message", \core\output\notification::NOTIFY_INFO);//    redirect('../../index.php', 'Message on redirect', null, \core\output\notification::NOTIFY_SUCCESS);
//    die('hello');//这条代码可以在首页上直接打印hello
}

数据库操作

  1. 调用数据库前,在插件目录下新建db文件夹,新建文件access.xml,moodle中所有与数据库相关的文件都是xml格式的
  2. 如需新建数据库则新建文件install.xml

PHP-DIALOGFLOW API

ytb上有PHP开发合集,虽然是5年前的,但是还是依然好用。
Webhook: PHP | Part - 8 | Create Chatbots using Dialogflow(API.AI) & deploy on GCloud
https://www.youtube.com/watch?v=mMtd-Fmr2to&list=PLZmfj7vJb0aFv-JQwSXh1VPAnKkOadhlX&index=20&t=14s

动态加载

待更新

【moodle】moodle dialog开发笔记 1相关推荐

  1. 《ArcGIS Runtime SDK for Android开发笔记》——离在线一体化技术:离线矢量数据同步...

    1.前言 上一篇文章中我们实现了离线要素的编辑操作,这一篇中主要介绍离在线一体化技术中最后一个环节离线数据的同步功能,通过对数据的上传,服务器端的版本化管理,实现数据生产管理的整个流程. 转载请注明出 ...

  2. 《ArcGIS Runtime SDK for Android开发笔记》——离在线一体化技术:离线矢量数据编辑...

    1.前言 在上一篇我们已经实现了离线地理数据库的下载,这一篇我们着重介绍离线数据库的加载与编辑. 由于ArcGIS Runtime SDK for Android 10.2.X版本并没提供要素绘制功能 ...

  3. 《ArcGIS Runtime SDK for Android开发笔记》——离在线一体化技术:离线矢量数据下载...

    1.前言 1.1.环境准备: ArcGIS for Desktop 10.4.1(10.2.1以上版本即可) ArcGIS for Server 10.4.1 (10.2.1以上版本即可) Postg ...

  4. Android开发笔记(序)写在前面的目录

    知识点分类 一方面写写自己走过的弯路掉进去的坑,避免以后再犯:另一方面希望通过分享自己的经验教训,与网友互相切磋,从而去芜存菁进一步提升自己的水平.因此博主就想,入门的东西咱就不写了,人不能老停留在入 ...

  5. Android开发笔记(一百七十七)借助FileProvider安装应用

    除了发送彩信需要文件提供器,安装应用也需要FileProvider.不单单彩信的附件图片能到媒体库中查询,应用的APK安装包也可在媒体库找到.查找安装包依然借助于内容解析器,具体的实现过程和查询图片类 ...

  6. Android开发笔记(一百五十一)WebView与JavaScript交互的四种形式

    WebView如果作为简单的网页浏览器,对于一般的浏览行为来说,已经足够了.可做为企业开发者,你的App通常要嵌入自家公司的网页,如此一来,还得考虑App与Web之间的消息传递,这就涉及到App的原生 ...

  7. Android开发笔记(一百三十六)可折叠工具栏布局CollapsingToolbarLayout

    可折叠工具栏布局CollapsingToolbarLayout 上一篇博文< Android开发笔记(一百三十五)应用栏布局AppBarLayout>阐述了如何把Toolbar往上滚动,那 ...

  8. Android开发笔记(一百二十五)自定义视频播放器

    视频播放方式 在Android中播放视频的方式有两种: 1.使用MediaPlayer结合SurfaceView进行播放.其中通过SurfaceView显示视频的画面,通过MediaPlayer来设置 ...

  9. Android开发笔记(一百一十)使用http框架上传文件

    HTTP上传 与文件下载相比,文件上传的场合不是很多,通常用于上传用户头像.朋友圈发布图片/视频动态等等,而且上传文件需要服务器配合,所以容易被app开发者忽略.就上传的形式来说,app一般采用htt ...

最新文章

  1. [CF125E]MST Company
  2. SQL Server 2005系列教学(14) 用户管理
  3. 用代码,打造创意新世界!【Innovation 2021】网易应用创新开发者大赛正式开赛!
  4. 前端学习(2174):打包文件的分析
  5. win10+anaconda3+python3.7+pytorch-cpu安装
  6. Linkage 使用方法总结
  7. python高维数据存储_Numpy高维数据的理解
  8. 【数学建模】基于matlab GUI理发店排队模拟系统【含Matlab源码 1116期】
  9. 阿里巴巴Java开发文档2020版学习-OOP 规约
  10. win10系统计算机物理地址,win10系统查看网卡的物理地址的操作方法
  11. Git出错,提示error: bad signature 0x00000000 fatal: index file corrupt(win10系统)
  12. 凯恩斯乘数到底有多么神奇?
  13. CNN 入门讲解:什么是全连接层
  14. 元宇宙这个筐,快被骗子撑破了
  15. 【分享】“小鹅通“在集简云平台集成应用的常见问题与解决方案
  16. Markdown语法快速入门(印象笔记)(从入门到精通,只有一步之遥)
  17. 诺基亚 Lumia 1020的价格
  18. C++ 流 文件操作(输入输出流)
  19. Effective Java读书笔记---二、创建和销毁对象
  20. IDEA运行报Command line is too long和unable to find valid certification path to requested target

热门文章

  1. android应用资源预编译,编译和打包全解析
  2. coda创建虚拟环境后无法切换到原环境
  3. 7步!顶会Paper 复现方法!
  4. I.MX8修改rootfs镱像文件.sdcard方法
  5. 利用swagger组件测试excel下载,打开文件乱码。
  6. jmeter性能使用笔记
  7. 小白也能轻松看懂的lora物联网!
  8. 程序员必备技术类微信公众号
  9. FastCGI sent in stderr: PHP message: PHP Fatal error: Call to undefined function __() in
  10. 调用高德导航,百度导航,腾讯地图