0
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

Djangoで作ったWebアプリをBraveクリエイターに登録する .well-known

Last updated at Posted at 2021-03-31

Braveブラウザとクリエイター登録について

最近話題のBraveブラウザ、これまでのWeb広告の問題を解決する力を持った新しいブラウザです。
非常に強力な広告ブロック機能を持ち表示速度も高速、ブラウザ拡張もChromeと同じものを使えるため移行コストも最小、特徴的なのが広告表示を任意でコントロールすることができ、Braveからの広告をオンにすると広告を受け取った分だけBAT(日本ではBATポイント)が付与されるという仕組みです。
ユーザーはこのBATやBATポイントをBraveにクリエイター登録されたWebサイトやYoutubeチャンネル、Twitterアカウントなどにチップとして贈ることができます。Braveブラウザの詳細な情報は公式サイトを確認してみてください。

今回はせっかくBraveブラウザ使い始めたし自分で管理してるWebアプリあるしどうせならクリエイター登録してみようかなと思い立ち実践してみました。

Djangoで作ったWebアプリを登録する際の問題点

Webアプリを登録する際の認証方法として推奨されているのが認証ファイルをドメインに配置する方法です。
この方法では.well-knownというフォルダにbrave-rewards-verification.txtという名前で指定された内容が記述された認証ファイルを配置するよう指示されます。
DjangoでWebアプリを作ったことがある人ならば、そんなフォルダはないし恐らくフォルダを作って認証ファイルを配置してもうまく動くはずがないと直感的に思うはずです。

こちらを見るとどうやら://hogefug.com/.well-known/にアクセスされた際に適切な形式のプレーンテキストを返せば良さそうです。
Braveの認証の際は://hogefug.com/.well-known/brave-rewards-verification.txtにアクセスしてくるため、ここで必要な認証情報を適切な形式で返すようにします。

準備

まずは 

にユーザー登録し、トップページから チャンネルを登録->ウェブサイト と移動しドメイン情報を入力します。
入力後の画面で認証方法を聞かれるためAを選択
すると以下のような画面で認証ファイルに含まれるべきコンテンツが表示されるので控えておきます。
スクリーンショット 2021-04-01 012433.png

実装

やっとWebアプリ側を弄ります。
今回はプロジェクト内に新しくbrave_verificationという名前のアプリを作りその中で処理をすることにします。

まずはmanage.pyと同じディレクトリで以下のコマンドを実行

python manage.py startapp brave_verification

忘れずにsetting.pyのINSTALLED_APPSに'brave_verification'を追加しておくこと

生成されたそれぞれのファイルを以下のように変更していきます。

/brave_verification/urls.py
from django.urls import path
from .views import verification_txt

urlpatterns = [
    path("brave-rewards-verification.txt", verification_txt),
]

/brave_verification/views.py
from django.http import HttpResponse
from django.conf import settings
from django.views.decorators.http import require_GET


@require_GET
def verification_txt(request):
    lines = []

    for name in filter(lambda x: x.startswith("WELLKNOWN_SECURITY_"), dir(settings)):
        key = name.replace("WELLKNOWN_SECURITY_", "").lower().title()
        for value in getattr(settings, name):
            lines += [f"{key}: {value}"]
        lines += [""]

    return HttpResponse("\n".join(lines), content_type="text/plain")

最後にsetting.pyの最後に認証情報を追加
※Domain:とToken:以降は準備で控えたファイルコンテンツの情報に置き換えてください

setting.py
WELLKNOWN_SECURITY_CONTACT = (
  'This is a Brave Rewards publisher verification file.',
  'Domain: example.com',
  'Token: xxxxxxjjjjj'
)

最後にデプロイ後、Brave Rewardsのページ上で”認証”のボタンを押せば完了です。

最後に

まだまだ登録されているページの少ないBraveクリエイターですが、今後の発展が非常に楽しみです。
クリエイター登録しなくてもBraveブラウザは非常に有用で素晴らしい可能性を持ったブラウザなのでもし興味がある方は使ってみてはいかがでしょうか。

Twitterアカウントも登録しております、もしこの記事が役に立った!と感じていただけたならTwitterのアカウントページに飛んでURLの右端に表示されるBrave Rewardsのボタンからチップを送っていただけると励みになります。

参考

0
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?