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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: d0c31e98f5b6a0949d80f35101adecce1c740992d77a664e9d1ffa5be17fdd5f
4
- data.tar.gz: 497b51eaa84a527e259f1dafa5e8df28e33504ebab2f48033d592f6158c9dea2
3
+ metadata.gz: 1a082803e8394a9239e446ce0e09ff99a09f160d11806d5c11b63f02ce563f0d
4
+ data.tar.gz: 396410d5226e1879b1007aea8454b86169dee9c6f14206d795f87fcf8c9af244
5
5
  SHA512:
6
- metadata.gz: 6c9d84f44d2c605870d6de926b2a48b6b754e43b2e9a1b35240b2839bfbacd46db2aa403a2f34a8fd44adffbce58d876683d73da41d8b9839e5ecbf75846a92a
7
- data.tar.gz: 89d23edba4d2c1417da658e8be87a315507a5841f3fd30b1c196f41a8739a503705b501c1cb986134db12b07dcebc58f9ee9ba801d53d7e51b73c340ed4fa8bf
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
- <!-- TODO: 待卡米修改完 Kamiliff 後,需新增不同使用方式的說明 -->
36
- `app/assets/javascripts/application.js` 當中加入一行程式碼:
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.body
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
- message = JSON.parse(message) if message.is_a? String
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
@@ -1,3 +1,3 @@
1
1
  module Kamigo
2
- VERSION = '0.11.0'.freeze
2
+ VERSION = '0.16.0'.freeze
3
3
  end
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.11.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: 2020-11-06 00:00:00.000000000 Z
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.18.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.18.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