kamigo 0.26.0 → 0.28.0

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 05f1fd7d4e57f8931196756adfbad1f4cf9083d8b4f65538d0ecd05fd18dc700
4
- data.tar.gz: c7f589be49fa51b5a2ae4da0f32e8622e90df52aae4be858c1cba1acb0961419
3
+ metadata.gz: 183742309b2ea81e02c1fc03e035de18a95d12816415faa08191432f0ce4775f
4
+ data.tar.gz: c8523ce01ed074009a82d44f3e86c9c188a46fb7240dae833eedc2e8a63f9a26
5
5
  SHA512:
6
- metadata.gz: d13b48d19628617ed526a08cfa1e9b1aa44fef8b2bf88faea1b5f73f4f8e625eea7b39359162f84f23ca067d11bcb93ef7ba82d755d9224a002f497f7c668e00
7
- data.tar.gz: a5a8c75b0451e725d8d06f95df25fd1b8a053bf0b934db430bbfa209ad2dc7a33e9c8da61919decd03a317684ad7d0f55e19388dc112dde1d40caa4694a18960
6
+ metadata.gz: 6c23e1abd2a0432ef3a723abcc041402ddd46f39049872f34f024bf2bcc6f8a8d9888541b05d8d3cc8d3728b288d54407bc6bff8e819bf9ec296258eccb6caaa
7
+ data.tar.gz: 7da6014ce051f0047983098b2191aa5938962a0628751e700c2003223afd449325c6ce73e70c546fbd32f6a3fcba2f94469d34859f6b322492635eb5abc55e98
data/README.md CHANGED
@@ -83,6 +83,25 @@ window.addEventListener("liff_submit", function(event){
83
83
  });
84
84
  ```
85
85
 
86
+ 若使用 Importmap(Rails 7),請使用 kamigo 0.27.0 以上的版本,並且在 `app/javascript/application.js` 當中
87
+
88
+ 加入以下程式碼:
89
+
90
+ ```
91
+ /* kamiliff default behavior */
92
+ window.addEventListener("liff_ready", function(event){
93
+ register_kamiliff_submit();
94
+ });
95
+
96
+ window.addEventListener("liff_submit", function(event){
97
+ var json = JSON.stringify(event.detail.data);
98
+ var url = event.detail.url;
99
+ var method = event.detail.method;
100
+ var request_text = method + " " + url + "\n" + json;
101
+ liff_send_text_message(request_text);
102
+ });
103
+ ```
104
+
86
105
  這會影響 LINE Bot 在 LIFF 送出表單時的行為。
87
106
 
88
107
  # 設定聊天機器人 Webhook URL
@@ -98,6 +117,9 @@ https://你的網域/line
98
117
  請在專案根目錄下新增一個 `.env` 檔並且填入以下內容:
99
118
 
100
119
  ```
120
+ LINE_LOGIN_CHANNEL_ID=這裡填入你的 LINE_LOGIN_CHANNEL_ID
121
+ LINE_LOGIN_CHANNEL_SECRET=這裡填入你的 LINE_LOGIN_CHANNEL_SECRET
122
+
101
123
  LINE_CHANNEL_SECRET=這裡填入你的 LINE_CHANNEL_SECRET
102
124
  LINE_CHANNEL_TOKEN=這裡填入你的 LINE_CHANNEL_ACCESS_TOKEN
103
125
  LIFF_COMPACT=這裡填入你的 COMPACT_LIFF_URL
@@ -105,6 +127,8 @@ LIFF_TALL=這裡填入你的 TALL_LIFF_URL
105
127
  LIFF_FULL=這裡填入你的 FULL_LIFF_URL
106
128
  ```
107
129
 
130
+ - `LINE_LOGIN_CHANNEL_ID` 可以在 LINE LOGIN 後台的 Basic settings 分頁中找到。
131
+ - `LINE_LOGIN_CHANNEL_SECRET` 可以在 LINE LOGIN 後台的 Basic settings 分頁中找到。
108
132
  - `LINE_CHANNEL_SECRET` 可以在 Messaging API 後台的 Basic settings 分頁中找到。
109
133
  - `LINE_CHANNEL_ACCESS_TOKEN` 可以在 Messaging API 後台的 Messaging API 分頁中找到。
110
134
  - `COMPACT_LIFF_URL`、`TALL_LIFF_URL` 和 `FULL_LIFF_URL` 需要到 LINE 後台的 LIFF 分頁新增後,即可獲得一組 LIFF URL。
@@ -1,2 +1,2 @@
1
1
  <%% content_for :title, "Edit <%= singular_table_name.titleize %>" %>
2
- <%%= render "<%= route_url %>/form.html", <%= singular_table_name %>: @<%= singular_table_name %> %>
2
+ <%%= render partial: "<%= route_url %>/form", formats: [:html], locals: {<%= singular_table_name %>: @<%= singular_table_name %>} %>
@@ -1,2 +1,2 @@
1
1
  <%% content_for :title, "New <%= singular_table_name.titleize %>" %>
2
- <%%= render "<%= route_url %>/form.html", <%= singular_table_name %>: @<%= singular_table_name %> %>
2
+ <%%= render partial: "<%= route_url %>/form", formats: [:html], locals: {<%= singular_table_name %>: @<%= singular_table_name %>} %>
@@ -12,18 +12,6 @@ Kamigo.setup do |config|
12
12
  # When line_default_message is nil, then Kamigo don't reply message.
13
13
  # config.line_default_message = nil
14
14
 
15
- # Integrate with line login
16
- # config.line_login_channel_id = ENV["LINE_LOGIN_CHANNEL_ID"]
17
- # config.line_login_channel_secret = ENV["LINE_LOGIN_CHANNEL_SECRET"]
18
- # config.line_login_redirect_uri = ENV["LINE_LOGIN_REDIRECT_URI"]
19
-
20
- # Integrate with liff
21
- # config.liff_url_compact = ENV["LIFF_COMPACT"]
22
- # config.liff_url_tall = ENV["LIFF_TALL"]
23
- # config.liff_url_full = ENV["LIFF_FULL"]
24
-
25
- # Integrate with line messaging api
26
- # config.line_message_api_channel_id = ENV["LINE_CHANNEL_ID"]
27
- # config.line_message_api_channel_secret = ENV["LINE_CHANNEL_SECRET"]
28
- # config.line_message_api_channel_token = ENV["LINE_CHANNEL_TOKEN"]
15
+ # When Kamigo receive a request, then Kamigo will process the request with the following processors.
16
+ # config.line_event_processors = [Kamigo::EventProcessors::RailsRouterProcessor.new]
29
17
  end
@@ -10,13 +10,15 @@ module Kamigo
10
10
  def process(event)
11
11
  http_method, path, request_params = kamiform_context(event)
12
12
  http_method, path, request_params = language_understanding(event.message) if http_method.nil?
13
- encoded_path = URI.encode(path)
13
+ return nil if http_method.nil? || path.nil?
14
+
15
+ encoded_path = URI::Parser.new.escape(path)
14
16
  request_params = event.platform_params.merge(request_params)
15
17
  output = reserve_route(encoded_path, http_method: http_method, request_params: request_params, format: :line)
16
18
  return output if output.present?
17
19
 
18
20
  return nil if Kamigo.default_path.nil?
19
- reserve_route(URI.encode(Kamigo.default_path), http_method: Kamigo.default_http_method, request_params: request_params, format: :line)
21
+ reserve_route(URI::Parser.new.escape(Kamigo.default_path), http_method: Kamigo.default_http_method, request_params: request_params, format: :line)
20
22
  end
21
23
 
22
24
  private
@@ -61,6 +63,8 @@ module Kamigo
61
63
  request_params[:authenticity_token] = @form_authenticity_token
62
64
  http_method = request_params["_method"]&.upcase || http_method || "GET"
63
65
  [http_method, path, request_params]
66
+ rescue
67
+ [nil, nil, nil]
64
68
  end
65
69
 
66
70
  def parse_json(string)
@@ -1,3 +1,3 @@
1
1
  module Kamigo
2
- VERSION = '0.26.0'.freeze
2
+ VERSION = '0.28.0'.freeze
3
3
  end
data/lib/kamigo.rb CHANGED
@@ -29,17 +29,17 @@ module Kamigo
29
29
  # env
30
30
  mattr_writer :line_messaging_api_channel_id
31
31
  mattr_writer :line_messaging_api_channel_secret
32
- mattr_writer :line_messaging_api_channel_access_token
32
+ mattr_writer :line_messaging_api_channel_token
33
33
 
34
- def self.line_message_api_channel_id
34
+ def self.line_messaging_api_channel_id
35
35
  @@line_message_api_channel_id = ENV["LINE_CHANNEL_ID"]
36
36
  end
37
37
 
38
- def self.line_message_api_channel_secret
38
+ def self.line_messaging_api_channel_secret
39
39
  @@line_message_api_channel_secret = ENV["LINE_CHANNEL_SECRET"]
40
40
  end
41
41
 
42
- def self.line_message_api_channel_token
42
+ def self.line_messaging_api_channel_token
43
43
  @@line_message_api_channel_token = ENV["LINE_CHANNEL_TOKEN"]
44
44
  end
45
45
 
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.26.0
4
+ version: 0.28.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - etrex
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2022-01-09 00:00:00.000000000 Z
11
+ date: 2023-02-21 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: rails
@@ -30,20 +30,20 @@ dependencies:
30
30
  requirements:
31
31
  - - "~>"
32
32
  - !ruby/object:Gem::Version
33
- version: '0.33'
33
+ version: '0.36'
34
34
  - - ">="
35
35
  - !ruby/object:Gem::Version
36
- version: 0.33.0
36
+ version: 0.36.0
37
37
  type: :runtime
38
38
  prerelease: false
39
39
  version_requirements: !ruby/object:Gem::Requirement
40
40
  requirements:
41
41
  - - "~>"
42
42
  - !ruby/object:Gem::Version
43
- version: '0.33'
43
+ version: '0.36'
44
44
  - - ">="
45
45
  - !ruby/object:Gem::Version
46
- version: 0.33.0
46
+ version: 0.36.0
47
47
  - !ruby/object:Gem::Dependency
48
48
  name: kamiflex
49
49
  requirement: !ruby/object:Gem::Requirement