kamigo 0.11.0 → 0.16.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/README.md +58 -2
- data/app/controllers/line_controller.rb +1 -1
- data/lib/kamigo/event_parsers/line_event_parser.rb +2 -0
- data/lib/kamigo/event_responsers/line_event_responser.rb +3 -1
- data/lib/kamigo/events/basic_event.rb +3 -1
- data/lib/kamigo/version.rb +1 -1
- metadata +22 -10
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 1a082803e8394a9239e446ce0e09ff99a09f160d11806d5c11b63f02ce563f0d
|
4
|
+
data.tar.gz: 396410d5226e1879b1007aea8454b86169dee9c6f14206d795f87fcf8c9af244
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: fd383becc048eb21156fe66ffa59834b0f77b2e14403bbd972fa1fb9b62fd5be94d5a07b9adb5a9fad3c93f176bff12a0620006ea5c2ca845c6a81e5dcdf361e
|
7
|
+
data.tar.gz: 395a3807def72c42bb2d9f34f8ddb2298b0e22e93d61e4c66b1bd6c6bbcb0f7f5b227127ad27e3ea537bbe6a1b765fb722f4fb8bbed593628faddc23c7701e3a
|
data/README.md
CHANGED
@@ -32,13 +32,53 @@ root to: "todos#index"
|
|
32
32
|
```
|
33
33
|
|
34
34
|
# 安裝 js 套件
|
35
|
-
|
36
|
-
|
35
|
+
|
36
|
+
若使用 Asset Pipeline(Rails 5),請在 `app/assets/javascripts/application.js` 當中
|
37
|
+
|
38
|
+
加入以下程式碼:
|
37
39
|
|
38
40
|
```
|
39
41
|
//= require kamiliff
|
40
42
|
```
|
41
43
|
|
44
|
+
或者加入以下程式碼:
|
45
|
+
|
46
|
+
```
|
47
|
+
/* kamiliff default behavior */
|
48
|
+
window.addEventListener("liff_ready", function(event){
|
49
|
+
register_kamiliff_submit();
|
50
|
+
});
|
51
|
+
|
52
|
+
window.addEventListener("liff_submit", function(event){
|
53
|
+
var json = JSON.stringify(event.detail.data);
|
54
|
+
var url = event.detail.url;
|
55
|
+
var method = event.detail.method;
|
56
|
+
var request_text = method + " " + url + "\n" + json;
|
57
|
+
liff_send_text_message(request_text);
|
58
|
+
});
|
59
|
+
```
|
60
|
+
|
61
|
+
若使用 Webpacker(Rails 6),請在 `app/javascript/packs/application.js` 當中
|
62
|
+
|
63
|
+
加入以下程式碼:
|
64
|
+
|
65
|
+
```
|
66
|
+
/* kamiliff default behavior */
|
67
|
+
window.addEventListener("liff_ready", function(event){
|
68
|
+
register_kamiliff_submit();
|
69
|
+
});
|
70
|
+
|
71
|
+
window.addEventListener("liff_submit", function(event){
|
72
|
+
var json = JSON.stringify(event.detail.data);
|
73
|
+
var url = event.detail.url;
|
74
|
+
var method = event.detail.method;
|
75
|
+
var request_text = method + " " + url + "\n" + json;
|
76
|
+
liff_send_text_message(request_text);
|
77
|
+
});
|
78
|
+
```
|
79
|
+
|
80
|
+
這會影響 LINE Bot 在 LIFF 送出表單時的行為。
|
81
|
+
|
42
82
|
# 設定聊天機器人 Webhook URL
|
43
83
|
本文假設你已經有一個自己的聊天機器人,請將以下網址填入 LINE Bot 的 Webhook URL 欄位中:
|
44
84
|
|
@@ -68,6 +108,22 @@ Kamigo 預設的 LIFF Size 為 Compact,你也可以只新增 Compact LIFF URL
|
|
68
108
|
|
69
109
|
至此串接完成。
|
70
110
|
|
111
|
+
# Rails 6 注意事項
|
112
|
+
|
113
|
+
若使用 ngrok 在本機開發時,需要在 `config/application.rb` 加入以下程式碼:
|
114
|
+
|
115
|
+
```ruby
|
116
|
+
...
|
117
|
+
module KamigoDemo
|
118
|
+
class Application < Rails::Application
|
119
|
+
...
|
120
|
+
config.hosts << "你的亂碼.ngrok.io"
|
121
|
+
end
|
122
|
+
end
|
123
|
+
```
|
124
|
+
|
125
|
+
才能正常連線。
|
126
|
+
|
71
127
|
# 實際使用
|
72
128
|
Kamigo 預設使用基本的語意理解模型,會將使用者輸入視為在瀏覽器網址上輸入文字,並且以 LINE Flex Message 來顯示對應的結果。
|
73
129
|
|
@@ -23,7 +23,7 @@ class LineController < ApplicationController
|
|
23
23
|
output = reserve_route(encoded_path, http_method: http_method, request_params: request_params, format: :line)
|
24
24
|
responser = Kamigo::EventResponsers::LineEventResponser.new
|
25
25
|
response = responser.response_event(event, output)
|
26
|
-
puts response
|
26
|
+
puts response&.body
|
27
27
|
rescue NoMethodError => e
|
28
28
|
puts e.full_message
|
29
29
|
responser = Kamigo::EventResponsers::LineEventResponser.new
|
@@ -13,9 +13,11 @@ module Kamigo
|
|
13
13
|
|
14
14
|
def parse(event)
|
15
15
|
payload = JSON.parse(event.to_json, symbolize_names: true)[:src]
|
16
|
+
response = client.get_profile(payload[:source][:userId])
|
16
17
|
line_event = Kamigo::Events::LineEvent.new
|
17
18
|
line_event.payload = payload
|
18
19
|
line_event.reply_token = event['replyToken']
|
20
|
+
line_event.profile = JSON.parse(response.body)
|
19
21
|
line_event.source_type = payload.dig(:source, :type)
|
20
22
|
line_event.source_group_id = payload.dig(:source, :groupId) || payload.dig(:source, :roomId) || payload.dig(:source, :userId)
|
21
23
|
line_event.source_user_id = payload.dig(:source, :userId) || payload.dig(:source, :groupId) || payload.dig(:source, :roomId)
|
@@ -4,7 +4,9 @@ module Kamigo
|
|
4
4
|
include Kamigo::Clients::LineClient
|
5
5
|
|
6
6
|
def response_event(event, message)
|
7
|
-
|
7
|
+
return nil if message.blank?
|
8
|
+
message = JSON.parse(message) if message.is_a?(String) && message.start_with?("{")
|
9
|
+
return nil if message.blank?
|
8
10
|
response = client.reply_message(event.reply_token, message)
|
9
11
|
response
|
10
12
|
end
|
@@ -7,6 +7,7 @@ module Kamigo
|
|
7
7
|
attr_accessor :source_type
|
8
8
|
attr_accessor :source_group_id
|
9
9
|
attr_accessor :source_user_id
|
10
|
+
attr_accessor :profile
|
10
11
|
attr_accessor :payload
|
11
12
|
|
12
13
|
def platform_params
|
@@ -14,7 +15,8 @@ module Kamigo
|
|
14
15
|
platform_type: platform_type,
|
15
16
|
source_type: source_type,
|
16
17
|
source_group_id: source_group_id,
|
17
|
-
source_user_id: source_user_id
|
18
|
+
source_user_id: source_user_id,
|
19
|
+
profile: profile
|
18
20
|
}
|
19
21
|
end
|
20
22
|
end
|
data/lib/kamigo/version.rb
CHANGED
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: kamigo
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.16.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- etrex
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date:
|
11
|
+
date: 2021-01-22 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: rails
|
@@ -28,20 +28,29 @@ dependencies:
|
|
28
28
|
name: kamiliff
|
29
29
|
requirement: !ruby/object:Gem::Requirement
|
30
30
|
requirements:
|
31
|
+
- - "~>"
|
32
|
+
- !ruby/object:Gem::Version
|
33
|
+
version: '0.24'
|
31
34
|
- - ">="
|
32
35
|
- !ruby/object:Gem::Version
|
33
|
-
version: 0.
|
36
|
+
version: 0.24.0
|
34
37
|
type: :runtime
|
35
38
|
prerelease: false
|
36
39
|
version_requirements: !ruby/object:Gem::Requirement
|
37
40
|
requirements:
|
41
|
+
- - "~>"
|
42
|
+
- !ruby/object:Gem::Version
|
43
|
+
version: '0.24'
|
38
44
|
- - ">="
|
39
45
|
- !ruby/object:Gem::Version
|
40
|
-
version: 0.
|
46
|
+
version: 0.24.0
|
41
47
|
- !ruby/object:Gem::Dependency
|
42
48
|
name: kamiflex
|
43
49
|
requirement: !ruby/object:Gem::Requirement
|
44
50
|
requirements:
|
51
|
+
- - "~>"
|
52
|
+
- !ruby/object:Gem::Version
|
53
|
+
version: '0.11'
|
45
54
|
- - ">="
|
46
55
|
- !ruby/object:Gem::Version
|
47
56
|
version: 0.11.0
|
@@ -49,6 +58,9 @@ dependencies:
|
|
49
58
|
prerelease: false
|
50
59
|
version_requirements: !ruby/object:Gem::Requirement
|
51
60
|
requirements:
|
61
|
+
- - "~>"
|
62
|
+
- !ruby/object:Gem::Version
|
63
|
+
version: '0.11'
|
52
64
|
- - ">="
|
53
65
|
- !ruby/object:Gem::Version
|
54
66
|
version: 0.11.0
|
@@ -56,30 +68,30 @@ dependencies:
|
|
56
68
|
name: line-bot-api
|
57
69
|
requirement: !ruby/object:Gem::Requirement
|
58
70
|
requirements:
|
59
|
-
- - "
|
71
|
+
- - "~>"
|
60
72
|
- !ruby/object:Gem::Version
|
61
73
|
version: '1.5'
|
62
74
|
type: :runtime
|
63
75
|
prerelease: false
|
64
76
|
version_requirements: !ruby/object:Gem::Requirement
|
65
77
|
requirements:
|
66
|
-
- - "
|
78
|
+
- - "~>"
|
67
79
|
- !ruby/object:Gem::Version
|
68
80
|
version: '1.5'
|
69
81
|
- !ruby/object:Gem::Dependency
|
70
82
|
name: sqlite3
|
71
83
|
requirement: !ruby/object:Gem::Requirement
|
72
84
|
requirements:
|
73
|
-
- - "
|
85
|
+
- - "~>"
|
74
86
|
- !ruby/object:Gem::Version
|
75
|
-
version: '0'
|
87
|
+
version: '1.0'
|
76
88
|
type: :development
|
77
89
|
prerelease: false
|
78
90
|
version_requirements: !ruby/object:Gem::Requirement
|
79
91
|
requirements:
|
80
|
-
- - "
|
92
|
+
- - "~>"
|
81
93
|
- !ruby/object:Gem::Version
|
82
|
-
version: '0'
|
94
|
+
version: '1.0'
|
83
95
|
description: a chatbot framework based on rails
|
84
96
|
email:
|
85
97
|
- et284vu065k3@gmail.com
|