line-bot-api 2.1.1 → 2.3.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/lib/line/bot/v2/manage_audience/model/audience_group.rb +2 -2
- data/lib/line/bot/v2/manage_audience/model/create_audience_group_response.rb +2 -2
- data/lib/line/bot/v2/manage_audience/model/create_click_based_audience_group_response.rb +2 -2
- data/lib/line/bot/v2/manage_audience/model/create_imp_based_audience_group_response.rb +2 -2
- data/lib/line/bot/v2/webhook_parser.rb +24 -5
- data/lib/line/bot/version.rb +1 -1
- data/sig/line/bot/v2/manage_audience/model/audience_group.rbs +3 -3
- data/sig/line/bot/v2/manage_audience/model/create_audience_group_response.rbs +3 -3
- data/sig/line/bot/v2/manage_audience/model/create_click_based_audience_group_response.rbs +3 -3
- data/sig/line/bot/v2/manage_audience/model/create_imp_based_audience_group_response.rbs +3 -3
- data/sig/line/bot/v2/webhook_parser.rbs +4 -3
- metadata +2 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 32bc05debf174d2fd40d7fe9b39eca826829773b732cd622b75025c8119806ef
|
4
|
+
data.tar.gz: 2755c22b1b43d31e3747f0523996b6ce2591e731b0b87e2b0a493c5697eec8a4
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: '06943b31d09d0a9833316c30b35711a66be1446c529a254b2a230ca05758b2e1402fd79986a6c1d3226adb9f58d6ebccb6c68953ff41f765529edfcd2c0e871d'
|
7
|
+
data.tar.gz: 50faa1171d680adabd94ffa8d610d05105082ee8d866fe63da04ecd1100131b3d0d95d6a2b603d505ba69eeefa0994d4c39fbbbe9d460520851aaa9f09113239
|
@@ -17,7 +17,7 @@ module Line
|
|
17
17
|
# @return [Integer,nil] The audience ID.
|
18
18
|
attr_accessor :audience_group_id
|
19
19
|
# @!attribute [rw] type
|
20
|
-
# @return [String,nil] ('UPLOAD'|'CLICK'|'IMP'|'CHAT_TAG'|'FRIEND_PATH'|'RESERVATION'|'APP_EVENT'|'VIDEO_VIEW'|'WEBTRAFFIC'|'IMAGE_CLICK'|'RICHMENU_IMP'|'RICHMENU_CLICK')
|
20
|
+
# @return [String,nil] ('UPLOAD'|'CLICK'|'IMP'|'CHAT_TAG'|'FRIEND_PATH'|'RESERVATION'|'APP_EVENT'|'VIDEO_VIEW'|'WEBTRAFFIC'|'IMAGE_CLICK'|'RICHMENU_IMP'|'RICHMENU_CLICK'|'POP_AD_IMP')
|
21
21
|
attr_accessor :type
|
22
22
|
# @!attribute [rw] description
|
23
23
|
# @return [String,nil] The audience's name.
|
@@ -51,7 +51,7 @@ module Line
|
|
51
51
|
attr_accessor :create_route
|
52
52
|
|
53
53
|
# @param audience_group_id [Integer,nil] The audience ID.
|
54
|
-
# @param type [String,nil] ('UPLOAD'|'CLICK'|'IMP'|'CHAT_TAG'|'FRIEND_PATH'|'RESERVATION'|'APP_EVENT'|'VIDEO_VIEW'|'WEBTRAFFIC'|'IMAGE_CLICK'|'RICHMENU_IMP'|'RICHMENU_CLICK')
|
54
|
+
# @param type [String,nil] ('UPLOAD'|'CLICK'|'IMP'|'CHAT_TAG'|'FRIEND_PATH'|'RESERVATION'|'APP_EVENT'|'VIDEO_VIEW'|'WEBTRAFFIC'|'IMAGE_CLICK'|'RICHMENU_IMP'|'RICHMENU_CLICK'|'POP_AD_IMP')
|
55
55
|
# @param description [String,nil] The audience's name.
|
56
56
|
# @param status [String,nil] ('IN_PROGRESS'|'READY'|'FAILED'|'EXPIRED'|'INACTIVE'|'ACTIVATING')
|
57
57
|
# @param failed_type [String,nil] ('AUDIENCE_GROUP_AUDIENCE_INSUFFICIENT'|'INTERNAL_ERROR'|'')
|
@@ -21,7 +21,7 @@ module Line
|
|
21
21
|
# @return [String,nil] ('MESSAGING_API') How the audience was created. `MESSAGING_API`: An audience created with Messaging API.
|
22
22
|
attr_accessor :create_route
|
23
23
|
# @!attribute [rw] type
|
24
|
-
# @return [String,nil] ('UPLOAD'|'CLICK'|'IMP'|'CHAT_TAG'|'FRIEND_PATH'|'RESERVATION'|'APP_EVENT'|'VIDEO_VIEW'|'WEBTRAFFIC'|'IMAGE_CLICK'|'RICHMENU_IMP'|'RICHMENU_CLICK')
|
24
|
+
# @return [String,nil] ('UPLOAD'|'CLICK'|'IMP'|'CHAT_TAG'|'FRIEND_PATH'|'RESERVATION'|'APP_EVENT'|'VIDEO_VIEW'|'WEBTRAFFIC'|'IMAGE_CLICK'|'RICHMENU_IMP'|'RICHMENU_CLICK'|'POP_AD_IMP')
|
25
25
|
attr_accessor :type
|
26
26
|
# @!attribute [rw] description
|
27
27
|
# @return [String,nil] The audience's name.
|
@@ -41,7 +41,7 @@ module Line
|
|
41
41
|
|
42
42
|
# @param audience_group_id [Integer,nil] The audience ID.
|
43
43
|
# @param create_route [String,nil] ('MESSAGING_API') How the audience was created. `MESSAGING_API`: An audience created with Messaging API.
|
44
|
-
# @param type [String,nil] ('UPLOAD'|'CLICK'|'IMP'|'CHAT_TAG'|'FRIEND_PATH'|'RESERVATION'|'APP_EVENT'|'VIDEO_VIEW'|'WEBTRAFFIC'|'IMAGE_CLICK'|'RICHMENU_IMP'|'RICHMENU_CLICK')
|
44
|
+
# @param type [String,nil] ('UPLOAD'|'CLICK'|'IMP'|'CHAT_TAG'|'FRIEND_PATH'|'RESERVATION'|'APP_EVENT'|'VIDEO_VIEW'|'WEBTRAFFIC'|'IMAGE_CLICK'|'RICHMENU_IMP'|'RICHMENU_CLICK'|'POP_AD_IMP')
|
45
45
|
# @param description [String,nil] The audience's name.
|
46
46
|
# @param created [Integer,nil] When the audience was created (in UNIX time).
|
47
47
|
# @param permission [String,nil] ('READ'|'READ_WRITE') Audience's update permission. Audiences linked to the same channel will be READ_WRITE. `READ`: Can use only. `READ_WRITE`: Can use and update.
|
@@ -18,7 +18,7 @@ module Line
|
|
18
18
|
# @return [Integer,nil] The audience ID.
|
19
19
|
attr_accessor :audience_group_id
|
20
20
|
# @!attribute [rw] type
|
21
|
-
# @return [String,nil] ('UPLOAD'|'CLICK'|'IMP'|'CHAT_TAG'|'FRIEND_PATH'|'RESERVATION'|'APP_EVENT'|'VIDEO_VIEW'|'WEBTRAFFIC'|'IMAGE_CLICK'|'RICHMENU_IMP'|'RICHMENU_CLICK')
|
21
|
+
# @return [String,nil] ('UPLOAD'|'CLICK'|'IMP'|'CHAT_TAG'|'FRIEND_PATH'|'RESERVATION'|'APP_EVENT'|'VIDEO_VIEW'|'WEBTRAFFIC'|'IMAGE_CLICK'|'RICHMENU_IMP'|'RICHMENU_CLICK'|'POP_AD_IMP')
|
22
22
|
attr_accessor :type
|
23
23
|
# @!attribute [rw] description
|
24
24
|
# @return [String,nil] The audience's name.
|
@@ -46,7 +46,7 @@ module Line
|
|
46
46
|
attr_accessor :is_ifa_audience
|
47
47
|
|
48
48
|
# @param audience_group_id [Integer,nil] The audience ID.
|
49
|
-
# @param type [String,nil] ('UPLOAD'|'CLICK'|'IMP'|'CHAT_TAG'|'FRIEND_PATH'|'RESERVATION'|'APP_EVENT'|'VIDEO_VIEW'|'WEBTRAFFIC'|'IMAGE_CLICK'|'RICHMENU_IMP'|'RICHMENU_CLICK')
|
49
|
+
# @param type [String,nil] ('UPLOAD'|'CLICK'|'IMP'|'CHAT_TAG'|'FRIEND_PATH'|'RESERVATION'|'APP_EVENT'|'VIDEO_VIEW'|'WEBTRAFFIC'|'IMAGE_CLICK'|'RICHMENU_IMP'|'RICHMENU_CLICK'|'POP_AD_IMP')
|
50
50
|
# @param description [String,nil] The audience's name.
|
51
51
|
# @param created [Integer,nil] When the audience was created (in UNIX time).
|
52
52
|
# @param request_id [String,nil] The request ID that was specified when the audience was created.
|
@@ -18,7 +18,7 @@ module Line
|
|
18
18
|
# @return [Integer,nil] The audience ID.
|
19
19
|
attr_accessor :audience_group_id
|
20
20
|
# @!attribute [rw] type
|
21
|
-
# @return [String,nil] ('UPLOAD'|'CLICK'|'IMP'|'CHAT_TAG'|'FRIEND_PATH'|'RESERVATION'|'APP_EVENT'|'VIDEO_VIEW'|'WEBTRAFFIC'|'IMAGE_CLICK'|'RICHMENU_IMP'|'RICHMENU_CLICK')
|
21
|
+
# @return [String,nil] ('UPLOAD'|'CLICK'|'IMP'|'CHAT_TAG'|'FRIEND_PATH'|'RESERVATION'|'APP_EVENT'|'VIDEO_VIEW'|'WEBTRAFFIC'|'IMAGE_CLICK'|'RICHMENU_IMP'|'RICHMENU_CLICK'|'POP_AD_IMP')
|
22
22
|
attr_accessor :type
|
23
23
|
# @!attribute [rw] description
|
24
24
|
# @return [String,nil] The audience's name.
|
@@ -31,7 +31,7 @@ module Line
|
|
31
31
|
attr_accessor :request_id
|
32
32
|
|
33
33
|
# @param audience_group_id [Integer,nil] The audience ID.
|
34
|
-
# @param type [String,nil] ('UPLOAD'|'CLICK'|'IMP'|'CHAT_TAG'|'FRIEND_PATH'|'RESERVATION'|'APP_EVENT'|'VIDEO_VIEW'|'WEBTRAFFIC'|'IMAGE_CLICK'|'RICHMENU_IMP'|'RICHMENU_CLICK')
|
34
|
+
# @param type [String,nil] ('UPLOAD'|'CLICK'|'IMP'|'CHAT_TAG'|'FRIEND_PATH'|'RESERVATION'|'APP_EVENT'|'VIDEO_VIEW'|'WEBTRAFFIC'|'IMAGE_CLICK'|'RICHMENU_IMP'|'RICHMENU_CLICK'|'POP_AD_IMP')
|
35
35
|
# @param description [String,nil] The audience's name.
|
36
36
|
# @param created [Integer,nil] When the audience was created (in UNIX time).
|
37
37
|
# @param request_id [String,nil] The request ID that was specified when the audience was created.
|
@@ -11,8 +11,20 @@ module Line
|
|
11
11
|
class WebhookParser
|
12
12
|
class InvalidSignatureError < StandardError; end
|
13
13
|
|
14
|
-
|
14
|
+
# Initialize webhook parser
|
15
|
+
#
|
16
|
+
# @param channel_secret [String]
|
17
|
+
# The channel secret used for signature verification.
|
18
|
+
# @param skip_signature_verification [() -> bool, nil]
|
19
|
+
# A callable object with type `() -> bool` that determines whether to skip
|
20
|
+
# webhook signature verification. Signature verification is skipped if and
|
21
|
+
# only if this callable is provided and returns `true`.
|
22
|
+
# This can be useful in scenarios such as when you're in the process of
|
23
|
+
# updating the channel secret and need to temporarily bypass verification
|
24
|
+
# to avoid disruptions.
|
25
|
+
def initialize(channel_secret:, skip_signature_verification: nil)
|
15
26
|
@channel_secret = channel_secret
|
27
|
+
@skip_signature_verification = skip_signature_verification
|
16
28
|
end
|
17
29
|
|
18
30
|
# Parse events from the raw request body and validate the signature.
|
@@ -31,7 +43,10 @@ module Line
|
|
31
43
|
#
|
32
44
|
# @example Sinatra usage
|
33
45
|
# def parser
|
34
|
-
# @parser ||= Line::Bot::V2::WebhookParser.new(
|
46
|
+
# @parser ||= Line::Bot::V2::WebhookParser.new(
|
47
|
+
# channel_secret: ENV.fetch("LINE_CHANNEL_SECRET"),
|
48
|
+
# skip_signature_verification: -> { ENV['SKIP_SIGNATURE_VERIFICATION'] == 'true' }
|
49
|
+
# )
|
35
50
|
# end
|
36
51
|
#
|
37
52
|
# post '/callback' do
|
@@ -54,7 +69,11 @@ module Line
|
|
54
69
|
# "OK"
|
55
70
|
# end
|
56
71
|
def parse(body:, signature:)
|
57
|
-
|
72
|
+
should_skip = @skip_signature_verification&.call || false
|
73
|
+
|
74
|
+
unless should_skip == true || verify_signature(body: body, signature: signature)
|
75
|
+
raise InvalidSignatureError.new("Invalid signature: #{signature}")
|
76
|
+
end
|
58
77
|
|
59
78
|
data = JSON.parse(body.chomp, symbolize_names: true)
|
60
79
|
data = Line::Bot::V2::Utils.deep_underscore(data)
|
@@ -66,14 +85,14 @@ module Line
|
|
66
85
|
end
|
67
86
|
end
|
68
87
|
|
69
|
-
private
|
70
|
-
|
71
88
|
def verify_signature(body:, signature:)
|
72
89
|
hash = OpenSSL::HMAC.digest(OpenSSL::Digest.new('SHA256'), @channel_secret, body)
|
73
90
|
expected = Base64.strict_encode64(hash)
|
74
91
|
variable_secure_compare(signature, expected)
|
75
92
|
end
|
76
93
|
|
94
|
+
private
|
95
|
+
|
77
96
|
# To avoid timing attacks
|
78
97
|
def variable_secure_compare(a, b)
|
79
98
|
secure_compare(::Digest::SHA256.hexdigest(a), ::Digest::SHA256.hexdigest(b))
|
data/lib/line/bot/version.rb
CHANGED
@@ -14,7 +14,7 @@ module Line
|
|
14
14
|
# Audience group
|
15
15
|
class AudienceGroup
|
16
16
|
attr_accessor audience_group_id: Integer?
|
17
|
-
attr_accessor type: 'UPLOAD'|'CLICK'|'IMP'|'CHAT_TAG'|'FRIEND_PATH'|'RESERVATION'|'APP_EVENT'|'VIDEO_VIEW'|'WEBTRAFFIC'|'IMAGE_CLICK'|'RICHMENU_IMP'|'RICHMENU_CLICK'?
|
17
|
+
attr_accessor type: 'UPLOAD'|'CLICK'|'IMP'|'CHAT_TAG'|'FRIEND_PATH'|'RESERVATION'|'APP_EVENT'|'VIDEO_VIEW'|'WEBTRAFFIC'|'IMAGE_CLICK'|'RICHMENU_IMP'|'RICHMENU_CLICK'|'POP_AD_IMP'?
|
18
18
|
attr_accessor description: String?
|
19
19
|
attr_accessor status: 'IN_PROGRESS'|'READY'|'FAILED'|'EXPIRED'|'INACTIVE'|'ACTIVATING'?
|
20
20
|
attr_accessor failed_type: 'AUDIENCE_GROUP_AUDIENCE_INSUFFICIENT'|'INTERNAL_ERROR'|''?
|
@@ -28,7 +28,7 @@ module Line
|
|
28
28
|
|
29
29
|
|
30
30
|
# @param audience_group_id [Integer,nil] The audience ID.
|
31
|
-
# @param type [String,nil] ('UPLOAD'|'CLICK'|'IMP'|'CHAT_TAG'|'FRIEND_PATH'|'RESERVATION'|'APP_EVENT'|'VIDEO_VIEW'|'WEBTRAFFIC'|'IMAGE_CLICK'|'RICHMENU_IMP'|'RICHMENU_CLICK')
|
31
|
+
# @param type [String,nil] ('UPLOAD'|'CLICK'|'IMP'|'CHAT_TAG'|'FRIEND_PATH'|'RESERVATION'|'APP_EVENT'|'VIDEO_VIEW'|'WEBTRAFFIC'|'IMAGE_CLICK'|'RICHMENU_IMP'|'RICHMENU_CLICK'|'POP_AD_IMP')
|
32
32
|
# @param description [String,nil] The audience's name.
|
33
33
|
# @param status [String,nil] ('IN_PROGRESS'|'READY'|'FAILED'|'EXPIRED'|'INACTIVE'|'ACTIVATING')
|
34
34
|
# @param failed_type [String,nil] ('AUDIENCE_GROUP_AUDIENCE_INSUFFICIENT'|'INTERNAL_ERROR'|'')
|
@@ -41,7 +41,7 @@ module Line
|
|
41
41
|
# @param create_route [String,nil] ('OA_MANAGER'|'MESSAGING_API'|'POINT_AD'|'AD_MANAGER')
|
42
42
|
def initialize: (
|
43
43
|
?audience_group_id: Integer?,
|
44
|
-
?type: 'UPLOAD'|'CLICK'|'IMP'|'CHAT_TAG'|'FRIEND_PATH'|'RESERVATION'|'APP_EVENT'|'VIDEO_VIEW'|'WEBTRAFFIC'|'IMAGE_CLICK'|'RICHMENU_IMP'|'RICHMENU_CLICK'?,
|
44
|
+
?type: 'UPLOAD'|'CLICK'|'IMP'|'CHAT_TAG'|'FRIEND_PATH'|'RESERVATION'|'APP_EVENT'|'VIDEO_VIEW'|'WEBTRAFFIC'|'IMAGE_CLICK'|'RICHMENU_IMP'|'RICHMENU_CLICK'|'POP_AD_IMP'?,
|
45
45
|
?description: String?,
|
46
46
|
?status: 'IN_PROGRESS'|'READY'|'FAILED'|'EXPIRED'|'INACTIVE'|'ACTIVATING'?,
|
47
47
|
?failed_type: 'AUDIENCE_GROUP_AUDIENCE_INSUFFICIENT'|'INTERNAL_ERROR'|''?,
|
@@ -16,7 +16,7 @@ module Line
|
|
16
16
|
class CreateAudienceGroupResponse
|
17
17
|
attr_accessor audience_group_id: Integer?
|
18
18
|
attr_accessor create_route: 'MESSAGING_API'?
|
19
|
-
attr_accessor type: 'UPLOAD'|'CLICK'|'IMP'|'CHAT_TAG'|'FRIEND_PATH'|'RESERVATION'|'APP_EVENT'|'VIDEO_VIEW'|'WEBTRAFFIC'|'IMAGE_CLICK'|'RICHMENU_IMP'|'RICHMENU_CLICK'?
|
19
|
+
attr_accessor type: 'UPLOAD'|'CLICK'|'IMP'|'CHAT_TAG'|'FRIEND_PATH'|'RESERVATION'|'APP_EVENT'|'VIDEO_VIEW'|'WEBTRAFFIC'|'IMAGE_CLICK'|'RICHMENU_IMP'|'RICHMENU_CLICK'|'POP_AD_IMP'?
|
20
20
|
attr_accessor description: String?
|
21
21
|
attr_accessor created: Integer?
|
22
22
|
attr_accessor permission: 'READ'|'READ_WRITE'?
|
@@ -26,7 +26,7 @@ module Line
|
|
26
26
|
|
27
27
|
# @param audience_group_id [Integer,nil] The audience ID.
|
28
28
|
# @param create_route [String,nil] ('MESSAGING_API') How the audience was created. `MESSAGING_API`: An audience created with Messaging API.
|
29
|
-
# @param type [String,nil] ('UPLOAD'|'CLICK'|'IMP'|'CHAT_TAG'|'FRIEND_PATH'|'RESERVATION'|'APP_EVENT'|'VIDEO_VIEW'|'WEBTRAFFIC'|'IMAGE_CLICK'|'RICHMENU_IMP'|'RICHMENU_CLICK')
|
29
|
+
# @param type [String,nil] ('UPLOAD'|'CLICK'|'IMP'|'CHAT_TAG'|'FRIEND_PATH'|'RESERVATION'|'APP_EVENT'|'VIDEO_VIEW'|'WEBTRAFFIC'|'IMAGE_CLICK'|'RICHMENU_IMP'|'RICHMENU_CLICK'|'POP_AD_IMP')
|
30
30
|
# @param description [String,nil] The audience's name.
|
31
31
|
# @param created [Integer,nil] When the audience was created (in UNIX time).
|
32
32
|
# @param permission [String,nil] ('READ'|'READ_WRITE') Audience's update permission. Audiences linked to the same channel will be READ_WRITE. `READ`: Can use only. `READ_WRITE`: Can use and update.
|
@@ -35,7 +35,7 @@ module Line
|
|
35
35
|
def initialize: (
|
36
36
|
?audience_group_id: Integer?,
|
37
37
|
?create_route: 'MESSAGING_API'?,
|
38
|
-
?type: 'UPLOAD'|'CLICK'|'IMP'|'CHAT_TAG'|'FRIEND_PATH'|'RESERVATION'|'APP_EVENT'|'VIDEO_VIEW'|'WEBTRAFFIC'|'IMAGE_CLICK'|'RICHMENU_IMP'|'RICHMENU_CLICK'?,
|
38
|
+
?type: 'UPLOAD'|'CLICK'|'IMP'|'CHAT_TAG'|'FRIEND_PATH'|'RESERVATION'|'APP_EVENT'|'VIDEO_VIEW'|'WEBTRAFFIC'|'IMAGE_CLICK'|'RICHMENU_IMP'|'RICHMENU_CLICK'|'POP_AD_IMP'?,
|
39
39
|
?description: String?,
|
40
40
|
?created: Integer?,
|
41
41
|
?permission: 'READ'|'READ_WRITE'?,
|
@@ -15,7 +15,7 @@ module Line
|
|
15
15
|
# @see https://developers.line.biz/en/reference/messaging-api/#create-click-audience-group
|
16
16
|
class CreateClickBasedAudienceGroupResponse
|
17
17
|
attr_accessor audience_group_id: Integer?
|
18
|
-
attr_accessor type: 'UPLOAD'|'CLICK'|'IMP'|'CHAT_TAG'|'FRIEND_PATH'|'RESERVATION'|'APP_EVENT'|'VIDEO_VIEW'|'WEBTRAFFIC'|'IMAGE_CLICK'|'RICHMENU_IMP'|'RICHMENU_CLICK'?
|
18
|
+
attr_accessor type: 'UPLOAD'|'CLICK'|'IMP'|'CHAT_TAG'|'FRIEND_PATH'|'RESERVATION'|'APP_EVENT'|'VIDEO_VIEW'|'WEBTRAFFIC'|'IMAGE_CLICK'|'RICHMENU_IMP'|'RICHMENU_CLICK'|'POP_AD_IMP'?
|
19
19
|
attr_accessor description: String?
|
20
20
|
attr_accessor created: Integer?
|
21
21
|
attr_accessor request_id: String?
|
@@ -27,7 +27,7 @@ module Line
|
|
27
27
|
|
28
28
|
|
29
29
|
# @param audience_group_id [Integer,nil] The audience ID.
|
30
|
-
# @param type [String,nil] ('UPLOAD'|'CLICK'|'IMP'|'CHAT_TAG'|'FRIEND_PATH'|'RESERVATION'|'APP_EVENT'|'VIDEO_VIEW'|'WEBTRAFFIC'|'IMAGE_CLICK'|'RICHMENU_IMP'|'RICHMENU_CLICK')
|
30
|
+
# @param type [String,nil] ('UPLOAD'|'CLICK'|'IMP'|'CHAT_TAG'|'FRIEND_PATH'|'RESERVATION'|'APP_EVENT'|'VIDEO_VIEW'|'WEBTRAFFIC'|'IMAGE_CLICK'|'RICHMENU_IMP'|'RICHMENU_CLICK'|'POP_AD_IMP')
|
31
31
|
# @param description [String,nil] The audience's name.
|
32
32
|
# @param created [Integer,nil] When the audience was created (in UNIX time).
|
33
33
|
# @param request_id [String,nil] The request ID that was specified when the audience was created.
|
@@ -38,7 +38,7 @@ module Line
|
|
38
38
|
# @param is_ifa_audience [bool,nil] The value indicating the type of account to be sent, as specified when creating the audience for uploading user IDs. One of: true: Accounts are specified with IFAs. false (default): Accounts are specified with user IDs.
|
39
39
|
def initialize: (
|
40
40
|
?audience_group_id: Integer?,
|
41
|
-
?type: 'UPLOAD'|'CLICK'|'IMP'|'CHAT_TAG'|'FRIEND_PATH'|'RESERVATION'|'APP_EVENT'|'VIDEO_VIEW'|'WEBTRAFFIC'|'IMAGE_CLICK'|'RICHMENU_IMP'|'RICHMENU_CLICK'?,
|
41
|
+
?type: 'UPLOAD'|'CLICK'|'IMP'|'CHAT_TAG'|'FRIEND_PATH'|'RESERVATION'|'APP_EVENT'|'VIDEO_VIEW'|'WEBTRAFFIC'|'IMAGE_CLICK'|'RICHMENU_IMP'|'RICHMENU_CLICK'|'POP_AD_IMP'?,
|
42
42
|
?description: String?,
|
43
43
|
?created: Integer?,
|
44
44
|
?request_id: String?,
|
@@ -15,20 +15,20 @@ module Line
|
|
15
15
|
# @see https://developers.line.biz/en/reference/messaging-api/#create-imp-audience-group
|
16
16
|
class CreateImpBasedAudienceGroupResponse
|
17
17
|
attr_accessor audience_group_id: Integer?
|
18
|
-
attr_accessor type: 'UPLOAD'|'CLICK'|'IMP'|'CHAT_TAG'|'FRIEND_PATH'|'RESERVATION'|'APP_EVENT'|'VIDEO_VIEW'|'WEBTRAFFIC'|'IMAGE_CLICK'|'RICHMENU_IMP'|'RICHMENU_CLICK'?
|
18
|
+
attr_accessor type: 'UPLOAD'|'CLICK'|'IMP'|'CHAT_TAG'|'FRIEND_PATH'|'RESERVATION'|'APP_EVENT'|'VIDEO_VIEW'|'WEBTRAFFIC'|'IMAGE_CLICK'|'RICHMENU_IMP'|'RICHMENU_CLICK'|'POP_AD_IMP'?
|
19
19
|
attr_accessor description: String?
|
20
20
|
attr_accessor created: Integer?
|
21
21
|
attr_accessor request_id: String?
|
22
22
|
|
23
23
|
|
24
24
|
# @param audience_group_id [Integer,nil] The audience ID.
|
25
|
-
# @param type [String,nil] ('UPLOAD'|'CLICK'|'IMP'|'CHAT_TAG'|'FRIEND_PATH'|'RESERVATION'|'APP_EVENT'|'VIDEO_VIEW'|'WEBTRAFFIC'|'IMAGE_CLICK'|'RICHMENU_IMP'|'RICHMENU_CLICK')
|
25
|
+
# @param type [String,nil] ('UPLOAD'|'CLICK'|'IMP'|'CHAT_TAG'|'FRIEND_PATH'|'RESERVATION'|'APP_EVENT'|'VIDEO_VIEW'|'WEBTRAFFIC'|'IMAGE_CLICK'|'RICHMENU_IMP'|'RICHMENU_CLICK'|'POP_AD_IMP')
|
26
26
|
# @param description [String,nil] The audience's name.
|
27
27
|
# @param created [Integer,nil] When the audience was created (in UNIX time).
|
28
28
|
# @param request_id [String,nil] The request ID that was specified when the audience was created.
|
29
29
|
def initialize: (
|
30
30
|
?audience_group_id: Integer?,
|
31
|
-
?type: 'UPLOAD'|'CLICK'|'IMP'|'CHAT_TAG'|'FRIEND_PATH'|'RESERVATION'|'APP_EVENT'|'VIDEO_VIEW'|'WEBTRAFFIC'|'IMAGE_CLICK'|'RICHMENU_IMP'|'RICHMENU_CLICK'?,
|
31
|
+
?type: 'UPLOAD'|'CLICK'|'IMP'|'CHAT_TAG'|'FRIEND_PATH'|'RESERVATION'|'APP_EVENT'|'VIDEO_VIEW'|'WEBTRAFFIC'|'IMAGE_CLICK'|'RICHMENU_IMP'|'RICHMENU_CLICK'|'POP_AD_IMP'?,
|
32
32
|
?description: String?,
|
33
33
|
?created: Integer?,
|
34
34
|
?request_id: String?,
|
@@ -5,18 +5,19 @@ module Line
|
|
5
5
|
class InvalidSignatureError < ::StandardError
|
6
6
|
end
|
7
7
|
@channel_secret: String
|
8
|
+
@skip_signature_verification: (^() -> bool) | nil
|
8
9
|
|
9
|
-
def initialize: (channel_secret: String) -> void
|
10
|
+
def initialize: (channel_secret: String, ?skip_signature_verification: (^() -> bool) | nil) -> void
|
10
11
|
|
11
12
|
def parse: (
|
12
13
|
body: String,
|
13
14
|
signature: String
|
14
15
|
) -> Array[Webhook::Event]
|
16
|
+
|
17
|
+
def verify_signature: (body: String, signature: String) -> bool
|
15
18
|
|
16
19
|
private
|
17
20
|
|
18
|
-
def verify_signature: (body: String, signature: String) -> bool
|
19
|
-
|
20
21
|
def variable_secure_compare: (String, String) -> bool
|
21
22
|
|
22
23
|
def secure_compare: (String, String) -> bool
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: line-bot-api
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 2.
|
4
|
+
version: 2.3.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- LINE Corporation
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2025-
|
11
|
+
date: 2025-09-24 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: multipart-post
|