Base62 with Vue and axios

Encodes and decodes using external API call with Vue.js and axios()

by kurin

HTML

<script src="https://unpkg.com/[email protected]/dist/axios.min.js"></script>
<div id="app">
  <button @click="send">
  send
  </button>
  <p v-html="log"></p>
</div>

JavaScript

/* http://base62.net/ */

var app = new Vue({
    el: "#app",
    data: {
        headers: {
        "Content-Type": "application/json",
		              "authorization": "key=AAAAXbQ0ATc:APA91bEHcnQc-Z5XZiD_IYcWTHaYfIxO_O6HLzo1Z9yRwlVzrRQzb_uRD7uwigtiP4miNpkH2PO7f0hdiP1DSN16YaR0lxlvYz5R1UzgOio_Vu63edY92m7qkXALNigPsJDyiTW1fn3H"
        },
        token: "foWgPkYA7M4:APA91bF4RxzPUGZUUJ6TwX2BmtgeFh01-PphIzjHEu0aImUU1aRmD1Hxu2ZcDTzx_6mHsYY7QzzjlYODCA2lgX8OTXy7l75xckBchoDFdN6eq2Q1vbnynGlZwkKixoNAFUCuVV9dRdzf",
        log: ""
    },
    methods:{
      send(){
				var self = this
        axios
            .request({
            url: "https://fcm.googleapis.com/fcm/send",
              method: "post",
              headers: this.headers,
              data: {
                
                // 一般通知は「notification」が必要ですが、
                // Voipな特殊の通信はいらないです。
                "notification": {
                  "title": "this is a title",
                  "body": "great wall"
                },
                 "content_available": true,
                "data":{
                	"chat_room_id": 123
                },
                /*
                "data":{
                  "title": "",
                  "force-start": "1",	// 必ず必要なパラメータ
                  "body" : "",
                  "content-available": "1",
                  "name" : "cat"
                 },
                 */
                "to": this.token
              }
            })
            .then(function (response) {
                self.log += "<br/>send message ok";
            })
            .catch(function (error) {
                self.log += "<br/>send message error";
            })
      }
    },
    created: function () {
        //this.send();
    }
});