Controller 的使用說明
以下是在 controller 當中你可以取得的所有 params:
platform_type
platform_type 表示目前的 Request 是來自於哪一個通訊軟體。
Kamigo 目前僅支援 LINE,因此 platform_type 的值會是 "line"。
你可以使用以下程式碼取得 platform_type:
platform_type = params.dig(:platform_type)
source_type
source_type 表示目前的 Request 是來自於那一種對話框,其可能的值為 "user"、"room"、"group"。
你可以使用以下程式碼取得 source_type:
source_type = params.dig(:source_type)
source_group_id
source_group_id 表示目前 Request 是來自於哪一個對話框。
若 source_type 的值為 "user",則 source_group_id 會與 LINE 提供的 userId 相等。
若 source_type 的值為 "room" 或 "group",則 source_group_id 的值會等於 LINE 提供的 roomId 或 groupId。
你可以使用以下程式碼取得 source_group_id:
source_group_id = params.dig(:source_group_id)
source_user_id
source_user_id 表示目前 Request 是來自於哪一個使用者。
source_user_id 會與 LINE 提供的 userId 相等。
在無法取得 userId 的某些情形下,source_user_id 的值將會與 source_group_id 相等。
你可以使用以下程式碼取得 source_user_id:
source_user_id = params.dig(:source_user_id)
message_type
message_type 表示目前 Request 的訊息類型。
message_type 與 LINE 提供的 message.type 相等。
在無法取得 message.type 的某些情形下,message_type 的值將會與 event.type 相等。
你可以使用以下程式碼取得 message_type:
message_type = params.dig(:message_type)
message
message_type 表示目前 Request 的訊息類型。
message_type 與 LINE 提供的 message.text, postback.data, message.address 相等。
在無法取得上述資訊的情形下,message 的值將會與 message_type 相等。
你可以使用以下程式碼取得 message:
message = params.dig(:message)
profile
profile 表示目前 Request 的用戶資訊。
profile 內包含以下資訊:
- displayName
- userId
- pictureUrl
- language (僅於私訊時可取得)
- statusMessage (僅於私訊時可取得)
你可以使用以下程式碼取得相關資訊:
displayName = params.dig(:profile, :displayName)
userId = params.dig(:profile, :userId)
pictureUrl = params.dig(:profile, :pictureUrl)
language = params.dig(:profile, :language)
statusMessage = params.dig(:profile, :statusMessage)
payload
payload 是 webhook 的原始資料,你可以在這裡取得 LINE 的完整 webhook event object。
你可以使用以下程式碼取得 payload:
payload = params.dig(:payload)
身分驗證
你可以假設 source_group_id 以及 source_user_id 是秘密資訊,以 source_group_id 和 source_user_id 來識別當前對話框以及用戶。