|
162 | 162 | </ul> |
163 | 163 | </li> |
164 | 164 | <li class="toctree-l1"><a class="reference internal" href="changelog.html">Changelog</a><ul> |
| 165 | +<li class="toctree-l2"><a class="reference internal" href="changelog.html#v2-6-0rc1-2020-05-14">v2.6.0rc1 (2020-05-14)</a></li> |
165 | 166 | <li class="toctree-l2"><a class="reference internal" href="changelog.html#v2-5-0-2019-12-09">v2.5.0 (2019-12-09)</a></li> |
166 | 167 | <li class="toctree-l2"><a class="reference internal" href="changelog.html#v2-4-0-2019-11-27">v2.4.0 (2019-11-27)</a></li> |
167 | 168 | <li class="toctree-l2"><a class="reference internal" href="changelog.html#v2-3-1-2019-10-29">v2.3.1 (2019-10-29)</a></li> |
@@ -354,19 +355,16 @@ <h2>Deleting a message<a class="headerlink" href="#deleting-a-message" title="Pe |
354 | 355 | <h2>Opening a modal<a class="headerlink" href="#opening-a-modal" title="Permalink to this headline">¶</a></h2> |
355 | 356 | <p>Modals allow you to collect data from users and display dynamic information in a focused surface.</p> |
356 | 357 | <p>Modals use the same blocks that compose messages with the addition of an <cite>input</cite> block.</p> |
357 | | -<div class="highlight-python notranslate"><div class="highlight"><pre><span></span><span class="kn">from</span> <span class="nn">flask</span> <span class="kn">import</span> <span class="n">Flask</span><span class="p">,</span> <span class="n">request</span><span class="p">,</span> <span class="n">make_response</span> |
| 358 | +<div class="highlight-python notranslate"><div class="highlight"><pre><span></span><span class="c1"># This module is available since v2.6.0rc1</span> |
| 359 | +<span class="kn">from</span> <span class="nn">slack.signature</span> <span class="kn">import</span> <span class="n">SignatureVerifier</span> |
| 360 | +<span class="n">signature_verifier</span> <span class="o">=</span> <span class="n">SignatureVerifier</span><span class="p">(</span><span class="n">os</span><span class="o">.</span><span class="n">environ</span><span class="p">[</span><span class="s2">"SLACK_SIGNING_SECRET"</span><span class="p">])</span> |
| 361 | + |
| 362 | +<span class="kn">from</span> <span class="nn">flask</span> <span class="kn">import</span> <span class="n">Flask</span><span class="p">,</span> <span class="n">request</span><span class="p">,</span> <span class="n">make_response</span> |
358 | 363 | <span class="n">app</span> <span class="o">=</span> <span class="n">Flask</span><span class="p">(</span><span class="vm">__name__</span><span class="p">)</span> |
359 | | -<span class="n">signing_secret</span> <span class="o">=</span> <span class="n">os</span><span class="o">.</span><span class="n">environ</span><span class="p">[</span><span class="s2">"SLACK_SIGNING_SECRET"</span><span class="p">]</span> |
360 | 364 |
|
361 | 365 | <span class="nd">@app</span><span class="o">.</span><span class="n">route</span><span class="p">(</span><span class="s2">"/slack/events"</span><span class="p">,</span> <span class="n">methods</span><span class="o">=</span><span class="p">[</span><span class="s2">"POST"</span><span class="p">])</span> |
362 | 366 | <span class="k">def</span> <span class="nf">slack_app</span><span class="p">():</span> |
363 | | - <span class="c1"># Refer to https://github.com/slackapi/python-slack-events-api</span> |
364 | | - <span class="c1"># (The Slack Team is going to provide a new package soon)</span> |
365 | | - <span class="k">if</span> <span class="ow">not</span> <span class="n">verify_request</span><span class="p">(</span> |
366 | | - <span class="n">signing_secret</span><span class="o">=</span><span class="n">signing_secret</span><span class="p">,</span> |
367 | | - <span class="n">request_body</span><span class="o">=</span><span class="n">request</span><span class="o">.</span><span class="n">get_data</span><span class="p">(),</span> |
368 | | - <span class="n">timestamp</span><span class="o">=</span><span class="n">request</span><span class="o">.</span><span class="n">headers</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="s2">"X-Slack-Request-Timestamp"</span><span class="p">),</span> |
369 | | - <span class="n">signature</span><span class="o">=</span><span class="n">request</span><span class="o">.</span><span class="n">headers</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="s2">"X-Slack-Signature"</span><span class="p">)):</span> |
| 367 | + <span class="k">if</span> <span class="ow">not</span> <span class="n">signature_verifier</span><span class="o">.</span><span class="n">is_valid_request</span><span class="p">(</span><span class="n">request</span><span class="o">.</span><span class="n">get_data</span><span class="p">(),</span> <span class="n">request</span><span class="o">.</span><span class="n">headers</span><span class="p">):</span> |
370 | 368 | <span class="k">return</span> <span class="n">make_response</span><span class="p">(</span><span class="s2">"invalid request"</span><span class="p">,</span> <span class="mi">403</span><span class="p">)</span> |
371 | 369 |
|
372 | 370 | <span class="k">if</span> <span class="s2">"command"</span> <span class="ow">in</span> <span class="n">request</span><span class="o">.</span><span class="n">form</span> \ |
|
0 commit comments