Skip to content

Commit 62d08a6

Browse files
authored
Support membership webhook event (#664)
Currently, when implementing a new WebhookEvent, we need to manually modify the EventRequestParser.php to support it in the line-bot-sdk-php. I've support this Membership Webhook event #663 line/line-openapi#86.
1 parent a54f4f7 commit 62d08a6

File tree

5 files changed

+314
-17
lines changed

5 files changed

+314
-17
lines changed

docs/classes/LINE-Parser-EventRequestParser.html

Lines changed: 104 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -145,7 +145,7 @@ <h2 class="phpdocumentor-content__title">
145145
<aside class="phpdocumentor-element-found-in">
146146
<abbr class="phpdocumentor-element-found-in__file" title="src/parser/lib/EventRequestParser.php"><a href="files/src-parser-lib-eventrequestparser.html"><abbr title="src/parser/lib/EventRequestParser.php">EventRequestParser.php</abbr></a></abbr>
147147
:
148-
<span class="phpdocumentor-element-found-in__line">49</span>
148+
<span class="phpdocumentor-element-found-in__line">51</span>
149149

150150
</aside>
151151

@@ -191,6 +191,13 @@ <h3 id="toc">
191191
<span>
192192
&nbsp;: mixed </span>
193193
</dt>
194+
<dd></dd>
195+
196+
<dt class="phpdocumentor-table-of-contents__entry -property -private">
197+
<a href="classes/LINE-Parser-EventRequestParser.html#property_membershipContentType2class">$membershipContentType2class</a>
198+
<span>
199+
&nbsp;: mixed </span>
200+
</dt>
194201
<dd></dd>
195202

196203
<dt class="phpdocumentor-table-of-contents__entry -property -private">
@@ -233,6 +240,13 @@ <h3 id="toc">
233240
<span>
234241
&nbsp;: <a href="classes/LINE-Webhook-Model-Event.html"><abbr title="\LINE\Webhook\Model\Event">Event</abbr></a> </span>
235242
</dt>
243+
<dd></dd>
244+
245+
<dt class="phpdocumentor-table-of-contents__entry -method -private">
246+
<a href="classes/LINE-Parser-EventRequestParser.html#method_parseMembershipContent">parseMembershipContent()</a>
247+
<span>
248+
&nbsp;: <a href="classes/LINE-Webhook-Model-MembershipContent.html"><abbr title="\LINE\Webhook\Model\MembershipContent">MembershipContent</abbr></a> </span>
249+
</dt>
236250
<dd></dd>
237251

238252
<dt class="phpdocumentor-table-of-contents__entry -method -private">
@@ -291,7 +305,7 @@ <h4 class="phpdocumentor-element__name" id="property_contentType2class">
291305
<aside class="phpdocumentor-element-found-in">
292306
<abbr class="phpdocumentor-element-found-in__file" title="src/parser/lib/EventRequestParser.php"><a href="files/src-parser-lib-eventrequestparser.html"><abbr title="src/parser/lib/EventRequestParser.php">EventRequestParser.php</abbr></a></abbr>
293307
:
294-
<span class="phpdocumentor-element-found-in__line">95</span>
308+
<span class="phpdocumentor-element-found-in__line">98</span>
295309

296310
</aside>
297311

@@ -325,7 +339,7 @@ <h4 class="phpdocumentor-element__name" id="property_eventType2class">
325339
<aside class="phpdocumentor-element-found-in">
326340
<abbr class="phpdocumentor-element-found-in__file" title="src/parser/lib/EventRequestParser.php"><a href="files/src-parser-lib-eventrequestparser.html"><abbr title="src/parser/lib/EventRequestParser.php">EventRequestParser.php</abbr></a></abbr>
327341
:
328-
<span class="phpdocumentor-element-found-in__line">51</span>
342+
<span class="phpdocumentor-element-found-in__line">53</span>
329343

330344
</aside>
331345

@@ -334,7 +348,41 @@ <h4 class="phpdocumentor-element__name" id="property_eventType2class">
334348
<span class="phpdocumentor-signature__visibility">private</span>
335349
<span class="phpdocumentor-signature__static">static</span> <span class="phpdocumentor-signature__type">mixed</span>
336350
<span class="phpdocumentor-signature__name">$eventType2class</span>
337-
= <span class="phpdocumentor-signature__default-value">[&#039;message&#039; =&gt; \LINE\Webhook\Model\MessageEvent::class, &#039;unsend&#039; =&gt; \LINE\Webhook\Model\UnsendEvent::class, &#039;follow&#039; =&gt; \LINE\Webhook\Model\FollowEvent::class, &#039;unfollow&#039; =&gt; \LINE\Webhook\Model\UnfollowEvent::class, &#039;join&#039; =&gt; \LINE\Webhook\Model\JoinEvent::class, &#039;leave&#039; =&gt; \LINE\Webhook\Model\LeaveEvent::class, &#039;postback&#039; =&gt; \LINE\Webhook\Model\PostbackEvent::class, &#039;videoPlayComplete&#039; =&gt; \LINE\Webhook\Model\VideoPlayCompleteEvent::class, &#039;beacon&#039; =&gt; \LINE\Webhook\Model\BeaconEvent::class, &#039;accountLink&#039; =&gt; \LINE\Webhook\Model\AccountLinkEvent::class, &#039;memberJoined&#039; =&gt; \LINE\Webhook\Model\MemberJoinedEvent::class, &#039;memberLeft&#039; =&gt; \LINE\Webhook\Model\MemberLeftEvent::class, &#039;things&#039; =&gt; \LINE\Webhook\Model\ThingsEvent::class, &#039;module&#039; =&gt; \LINE\Webhook\Model\ModuleEvent::class, &#039;activated&#039; =&gt; \LINE\Webhook\Model\ActivatedEvent::class, &#039;deactivated&#039; =&gt; \LINE\Webhook\Model\DeactivatedEvent::class, &#039;botSuspended&#039; =&gt; \LINE\Webhook\Model\BotSuspendedEvent::class, &#039;botResumed&#039; =&gt; \LINE\Webhook\Model\BotResumedEvent::class, &#039;delivery&#039; =&gt; \LINE\Webhook\Model\PnpDeliveryCompletionEvent::class]</span></code>
351+
= <span class="phpdocumentor-signature__default-value">[&#039;message&#039; =&gt; \LINE\Webhook\Model\MessageEvent::class, &#039;unsend&#039; =&gt; \LINE\Webhook\Model\UnsendEvent::class, &#039;follow&#039; =&gt; \LINE\Webhook\Model\FollowEvent::class, &#039;unfollow&#039; =&gt; \LINE\Webhook\Model\UnfollowEvent::class, &#039;join&#039; =&gt; \LINE\Webhook\Model\JoinEvent::class, &#039;leave&#039; =&gt; \LINE\Webhook\Model\LeaveEvent::class, &#039;postback&#039; =&gt; \LINE\Webhook\Model\PostbackEvent::class, &#039;videoPlayComplete&#039; =&gt; \LINE\Webhook\Model\VideoPlayCompleteEvent::class, &#039;beacon&#039; =&gt; \LINE\Webhook\Model\BeaconEvent::class, &#039;accountLink&#039; =&gt; \LINE\Webhook\Model\AccountLinkEvent::class, &#039;memberJoined&#039; =&gt; \LINE\Webhook\Model\MemberJoinedEvent::class, &#039;memberLeft&#039; =&gt; \LINE\Webhook\Model\MemberLeftEvent::class, &#039;things&#039; =&gt; \LINE\Webhook\Model\ThingsEvent::class, &#039;module&#039; =&gt; \LINE\Webhook\Model\ModuleEvent::class, &#039;activated&#039; =&gt; \LINE\Webhook\Model\ActivatedEvent::class, &#039;deactivated&#039; =&gt; \LINE\Webhook\Model\DeactivatedEvent::class, &#039;botSuspended&#039; =&gt; \LINE\Webhook\Model\BotSuspendedEvent::class, &#039;botResumed&#039; =&gt; \LINE\Webhook\Model\BotResumedEvent::class, &#039;delivery&#039; =&gt; \LINE\Webhook\Model\PnpDeliveryCompletionEvent::class, &#039;membership&#039; =&gt; \LINE\Webhook\Model\MembershipEvent::class]</span></code>
352+
353+
<section class="phpdocumentor-description"></section>
354+
355+
<section class="phpdocumentor-description"></section>
356+
357+
358+
359+
</article>
360+
<article
361+
class="
362+
phpdocumentor-element
363+
-property
364+
-private
365+
-static "
366+
>
367+
<h4 class="phpdocumentor-element__name" id="property_membershipContentType2class">
368+
$membershipContentType2class
369+
<a href="classes/LINE-Parser-EventRequestParser.html#property_membershipContentType2class" class="headerlink"><i class="fas fa-link"></i></a>
370+
<span class="phpdocumentor-element__modifiers">
371+
</span>
372+
</h4>
373+
<aside class="phpdocumentor-element-found-in">
374+
<abbr class="phpdocumentor-element-found-in__file" title="src/parser/lib/EventRequestParser.php"><a href="files/src-parser-lib-eventrequestparser.html"><abbr title="src/parser/lib/EventRequestParser.php">EventRequestParser.php</abbr></a></abbr>
375+
:
376+
<span class="phpdocumentor-element-found-in__line">115</span>
377+
378+
</aside>
379+
380+
381+
<code class="phpdocumentor-code phpdocumentor-signature ">
382+
<span class="phpdocumentor-signature__visibility">private</span>
383+
<span class="phpdocumentor-signature__static">static</span> <span class="phpdocumentor-signature__type">mixed</span>
384+
<span class="phpdocumentor-signature__name">$membershipContentType2class</span>
385+
= <span class="phpdocumentor-signature__default-value">[&#039;joined&#039; =&gt; \LINE\Webhook\Model\JoinedMembershipContent::class, &#039;left&#039; =&gt; \LINE\Webhook\Model\LeftMembershipContent::class, &#039;renewed&#039; =&gt; \LINE\Webhook\Model\RenewedMembershipContent::class]</span></code>
338386

339387
<section class="phpdocumentor-description"></section>
340388

@@ -359,7 +407,7 @@ <h4 class="phpdocumentor-element__name" id="property_messageType2class">
359407
<aside class="phpdocumentor-element-found-in">
360408
<abbr class="phpdocumentor-element-found-in__file" title="src/parser/lib/EventRequestParser.php"><a href="files/src-parser-lib-eventrequestparser.html"><abbr title="src/parser/lib/EventRequestParser.php">EventRequestParser.php</abbr></a></abbr>
361409
:
362-
<span class="phpdocumentor-element-found-in__line">73</span>
410+
<span class="phpdocumentor-element-found-in__line">76</span>
363411

364412
</aside>
365413

@@ -393,7 +441,7 @@ <h4 class="phpdocumentor-element__name" id="property_moduleContentType2class">
393441
<aside class="phpdocumentor-element-found-in">
394442
<abbr class="phpdocumentor-element-found-in__file" title="src/parser/lib/EventRequestParser.php"><a href="files/src-parser-lib-eventrequestparser.html"><abbr title="src/parser/lib/EventRequestParser.php">EventRequestParser.php</abbr></a></abbr>
395443
:
396-
<span class="phpdocumentor-element-found-in__line">107</span>
444+
<span class="phpdocumentor-element-found-in__line">110</span>
397445

398446
</aside>
399447

@@ -427,7 +475,7 @@ <h4 class="phpdocumentor-element__name" id="property_sourceType2class">
427475
<aside class="phpdocumentor-element-found-in">
428476
<abbr class="phpdocumentor-element-found-in__file" title="src/parser/lib/EventRequestParser.php"><a href="files/src-parser-lib-eventrequestparser.html"><abbr title="src/parser/lib/EventRequestParser.php">EventRequestParser.php</abbr></a></abbr>
429477
:
430-
<span class="phpdocumentor-element-found-in__line">83</span>
478+
<span class="phpdocumentor-element-found-in__line">86</span>
431479

432480
</aside>
433481

@@ -461,7 +509,7 @@ <h4 class="phpdocumentor-element__name" id="property_thingsContentType2class">
461509
<aside class="phpdocumentor-element-found-in">
462510
<abbr class="phpdocumentor-element-found-in__file" title="src/parser/lib/EventRequestParser.php"><a href="files/src-parser-lib-eventrequestparser.html"><abbr title="src/parser/lib/EventRequestParser.php">EventRequestParser.php</abbr></a></abbr>
463511
:
464-
<span class="phpdocumentor-element-found-in__line">89</span>
512+
<span class="phpdocumentor-element-found-in__line">92</span>
465513

466514
</aside>
467515

@@ -499,7 +547,7 @@ <h4 class="phpdocumentor-element__name" id="method_parseEventRequest">
499547
<aside class="phpdocumentor-element-found-in">
500548
<abbr class="phpdocumentor-element-found-in__file" title="src/parser/lib/EventRequestParser.php"><a href="files/src-parser-lib-eventrequestparser.html"><abbr title="src/parser/lib/EventRequestParser.php">EventRequestParser.php</abbr></a></abbr>
501549
:
502-
<span class="phpdocumentor-element-found-in__line">120</span>
550+
<span class="phpdocumentor-element-found-in__line">129</span>
503551

504552
</aside>
505553

@@ -577,7 +625,7 @@ <h4 class="phpdocumentor-element__name" id="method_parseEvent">
577625
<aside class="phpdocumentor-element-found-in">
578626
<abbr class="phpdocumentor-element-found-in__file" title="src/parser/lib/EventRequestParser.php"><a href="files/src-parser-lib-eventrequestparser.html"><abbr title="src/parser/lib/EventRequestParser.php">EventRequestParser.php</abbr></a></abbr>
579627
:
580-
<span class="phpdocumentor-element-found-in__line">143</span>
628+
<span class="phpdocumentor-element-found-in__line">152</span>
581629

582630
</aside>
583631

@@ -607,6 +655,48 @@ <h5 class="phpdocumentor-return-value__heading">Return values</h5>
607655
&mdash;
608656

609657

658+
</article>
659+
<article
660+
class="phpdocumentor-element
661+
-method
662+
-private
663+
-static "
664+
>
665+
<h4 class="phpdocumentor-element__name" id="method_parseMembershipContent">
666+
parseMembershipContent()
667+
<a href="classes/LINE-Parser-EventRequestParser.html#method_parseMembershipContent" class="headerlink"><i class="fas fa-link"></i></a>
668+
</h4>
669+
<aside class="phpdocumentor-element-found-in">
670+
<abbr class="phpdocumentor-element-found-in__file" title="src/parser/lib/EventRequestParser.php"><a href="files/src-parser-lib-eventrequestparser.html"><abbr title="src/parser/lib/EventRequestParser.php">EventRequestParser.php</abbr></a></abbr>
671+
:
672+
<span class="phpdocumentor-element-found-in__line">307</span>
673+
674+
</aside>
675+
676+
677+
<code class="phpdocumentor-code phpdocumentor-signature ">
678+
<span class="phpdocumentor-signature__visibility">private</span>
679+
<span class="phpdocumentor-signature__static">static</span> <span class="phpdocumentor-signature__name">parseMembershipContent</span><span>(</span><span class="phpdocumentor-signature__argument"><span class="phpdocumentor-signature__argument__return-type">array&lt;string|int, mixed&gt;&nbsp;</span><span class="phpdocumentor-signature__argument__name">$eventData</span></span><span>)</span><span> : </span><span class="phpdocumentor-signature__response_type"><a href="classes/LINE-Webhook-Model-MembershipContent.html"><abbr title="\LINE\Webhook\Model\MembershipContent">MembershipContent</abbr></a></span></code>
680+
681+
682+
<h5 class="phpdocumentor-argument-list__heading">Parameters</h5>
683+
<dl class="phpdocumentor-argument-list">
684+
<dt class="phpdocumentor-argument-list__entry">
685+
<span class="phpdocumentor-signature__argument__name">$eventData</span>
686+
: <span class="phpdocumentor-signature__argument__return-type">array&lt;string|int, mixed&gt;</span>
687+
</dt>
688+
<dd class="phpdocumentor-argument-list__definition">
689+
690+
</dd>
691+
</dl>
692+
693+
694+
695+
<h5 class="phpdocumentor-return-value__heading">Return values</h5>
696+
<span class="phpdocumentor-signature__response_type"><a href="classes/LINE-Webhook-Model-MembershipContent.html"><abbr title="\LINE\Webhook\Model\MembershipContent">MembershipContent</abbr></a></span>
697+
&mdash;
698+
699+
610700
</article>
611701
<article
612702
class="phpdocumentor-element
@@ -621,7 +711,7 @@ <h4 class="phpdocumentor-element__name" id="method_parseMessageContent">
621711
<aside class="phpdocumentor-element-found-in">
622712
<abbr class="phpdocumentor-element-found-in__file" title="src/parser/lib/EventRequestParser.php"><a href="files/src-parser-lib-eventrequestparser.html"><abbr title="src/parser/lib/EventRequestParser.php">EventRequestParser.php</abbr></a></abbr>
623713
:
624-
<span class="phpdocumentor-element-found-in__line">186</span>
714+
<span class="phpdocumentor-element-found-in__line">200</span>
625715

626716
</aside>
627717

@@ -663,7 +753,7 @@ <h4 class="phpdocumentor-element__name" id="method_parseModuleContent">
663753
<aside class="phpdocumentor-element-found-in">
664754
<abbr class="phpdocumentor-element-found-in__file" title="src/parser/lib/EventRequestParser.php"><a href="files/src-parser-lib-eventrequestparser.html"><abbr title="src/parser/lib/EventRequestParser.php">EventRequestParser.php</abbr></a></abbr>
665755
:
666-
<span class="phpdocumentor-element-found-in__line">278</span>
756+
<span class="phpdocumentor-element-found-in__line">292</span>
667757

668758
</aside>
669759

@@ -705,7 +795,7 @@ <h4 class="phpdocumentor-element__name" id="method_parseSource">
705795
<aside class="phpdocumentor-element-found-in">
706796
<abbr class="phpdocumentor-element-found-in__file" title="src/parser/lib/EventRequestParser.php"><a href="files/src-parser-lib-eventrequestparser.html"><abbr title="src/parser/lib/EventRequestParser.php">EventRequestParser.php</abbr></a></abbr>
707797
:
708-
<span class="phpdocumentor-element-found-in__line">235</span>
798+
<span class="phpdocumentor-element-found-in__line">249</span>
709799

710800
</aside>
711801

@@ -747,7 +837,7 @@ <h4 class="phpdocumentor-element__name" id="method_parseThingsContent">
747837
<aside class="phpdocumentor-element-found-in">
748838
<abbr class="phpdocumentor-element-found-in__file" title="src/parser/lib/EventRequestParser.php"><a href="files/src-parser-lib-eventrequestparser.html"><abbr title="src/parser/lib/EventRequestParser.php">EventRequestParser.php</abbr></a></abbr>
749839
:
750-
<span class="phpdocumentor-element-found-in__line">253</span>
840+
<span class="phpdocumentor-element-found-in__line">267</span>
751841

752842
</aside>
753843

docs/classes/LINE-Parser-Tests-EventRequestParserTest.html

Lines changed: 56 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1128,6 +1128,60 @@ <h4 class="phpdocumentor-element__name" id="property_json">
11281128
&quot;deliveryContext&quot;: {
11291129
&quot;isRedelivery&quot;: false
11301130
}
1131+
},
1132+
{
1133+
&quot;type&quot;: &quot;membership&quot;,
1134+
&quot;timestamp&quot;: 12345678901234,
1135+
&quot;mode&quot;: &quot;active&quot;,
1136+
&quot;source&quot;: {
1137+
&quot;type&quot;: &quot;user&quot;,
1138+
&quot;userId&quot;: &quot;userid&quot;
1139+
},
1140+
&quot;membership&quot;: {
1141+
&quot;type&quot;: &quot;joined&quot;,
1142+
&quot;membershipId&quot;: 1234567890
1143+
},
1144+
&quot;webhookEventId&quot;: &quot;testwebhookeventid&quot;,
1145+
&quot;deliveryContext&quot;: {
1146+
&quot;isRedelivery&quot;: false
1147+
},
1148+
&quot;replyToken&quot;: &quot;replytoken&quot;
1149+
},
1150+
{
1151+
&quot;type&quot;: &quot;membership&quot;,
1152+
&quot;timestamp&quot;: 12345678901234,
1153+
&quot;mode&quot;: &quot;active&quot;,
1154+
&quot;source&quot;: {
1155+
&quot;type&quot;: &quot;user&quot;,
1156+
&quot;userId&quot;: &quot;userid&quot;
1157+
},
1158+
&quot;membership&quot;: {
1159+
&quot;type&quot;: &quot;left&quot;,
1160+
&quot;membershipId&quot;: 1234567890
1161+
},
1162+
&quot;webhookEventId&quot;: &quot;testwebhookeventid&quot;,
1163+
&quot;deliveryContext&quot;: {
1164+
&quot;isRedelivery&quot;: false
1165+
},
1166+
&quot;replyToken&quot;: &quot;replytoken&quot;
1167+
},
1168+
{
1169+
&quot;type&quot;: &quot;membership&quot;,
1170+
&quot;timestamp&quot;: 12345678901234,
1171+
&quot;mode&quot;: &quot;active&quot;,
1172+
&quot;source&quot;: {
1173+
&quot;type&quot;: &quot;user&quot;,
1174+
&quot;userId&quot;: &quot;userid&quot;
1175+
},
1176+
&quot;membership&quot;: {
1177+
&quot;type&quot;: &quot;renewed&quot;,
1178+
&quot;membershipId&quot;: 1234567890
1179+
},
1180+
&quot;webhookEventId&quot;: &quot;testwebhookeventid&quot;,
1181+
&quot;deliveryContext&quot;: {
1182+
&quot;isRedelivery&quot;: false
1183+
},
1184+
&quot;replyToken&quot;: &quot;replytoken&quot;
11311185
}
11321186
]
11331187
}
@@ -1161,7 +1215,7 @@ <h4 class="phpdocumentor-element__name" id="method_testParseEventRequest">
11611215
<aside class="phpdocumentor-element-found-in">
11621216
<abbr class="phpdocumentor-element-found-in__file" title="src/parser/test/EventRequestParserTest.php"><a href="files/src-parser-test-eventrequestparsertest.html"><abbr title="src/parser/test/EventRequestParserTest.php">EventRequestParserTest.php</abbr></a></abbr>
11631217
:
1164-
<span class="phpdocumentor-element-found-in__line">944</span>
1218+
<span class="phpdocumentor-element-found-in__line">998</span>
11651219

11661220
</aside>
11671221

@@ -1223,7 +1277,7 @@ <h4 class="phpdocumentor-element__name" id="method_getSignature">
12231277
<aside class="phpdocumentor-element-found-in">
12241278
<abbr class="phpdocumentor-element-found-in__file" title="src/parser/test/EventRequestParserTest.php"><a href="files/src-parser-test-eventrequestparsertest.html"><abbr title="src/parser/test/EventRequestParserTest.php">EventRequestParserTest.php</abbr></a></abbr>
12251279
:
1226-
<span class="phpdocumentor-element-found-in__line">1714</span>
1280+
<span class="phpdocumentor-element-found-in__line">1828</span>
12271281

12281282
</aside>
12291283

0 commit comments

Comments
 (0)