Jared 2 年之前
父節點
當前提交
edbb8f6b11
共有 12 個文件被更改,包括 296 次插入0 次删除
  1. 7 0
      main.py
  2. 二進制
      misa/icon/badge.png
  3. 二進制
      misa/icon/example.png
  4. 二進制
      misa/icon/icon.ico
  5. 二進制
      misa/icon/liff.png
  6. 二進制
      misa/img/CMM_LOGO.png
  7. 二進制
      misa/img/arrow.png
  8. 二進制
      misa/img/phone.png
  9. 二進制
      misa/img/step-phone.png
  10. 61 0
      misa/index.html
  11. 135 0
      misa/js/liff-functions.js
  12. 93 0
      misa/js/liff-init.js

+ 7 - 0
main.py

@@ -56,6 +56,13 @@ def liff_taro(request: Request):
     return json.loads(data)
 
 
+@app.get("/misa")
+def liff_taro(request: Request):
+    r = redis.Redis(host='db.ptt.cx', port=6379, db=2,password='choozmo9')
+    data=r.get('misa')
+    return json.loads(data)
+
+
 if __name__ == "__main__":
     uvicorn.run("main:app", host="0.0.0.0", port=9898,ssl_keyfile='/etc/letsencrypt/live/liff.googo.org/privkey.pem',ssl_certfile='/etc/letsencrypt/live/liff.googo.org/cert.pem')
     

二進制
misa/icon/badge.png


二進制
misa/icon/example.png


二進制
misa/icon/icon.ico


二進制
misa/icon/liff.png


二進制
misa/img/CMM_LOGO.png


二進制
misa/img/arrow.png


二進制
misa/img/phone.png


二進制
misa/img/step-phone.png


+ 61 - 0
misa/index.html

@@ -0,0 +1,61 @@
+<!DOCTYPE html>
+<html>
+
+<head>
+  <meta charset="utf-8" />
+  <meta name="viewport" content="width=device-width, initial-scale=1" />
+  <title>MISA 資訊分享</title>
+  <link rel="shortcut icon" href="icon/icon.ico" type="image/x-icon" />
+  <link rel="icon" href="icon/icon.ico" type="image/x-icon" />
+  <link rel="stylesheet" href="/css/style.css">
+</head>
+
+<body>
+  <div id="message">
+    <center>
+      <img style="margin: 0; width: 250px; image-rendering: -webkit-optimize-contrast;" src="/liff2/img/CMM_LOGO.png"
+        alt="">
+      <h2>LINE 傳單分享</h2>
+    </center>
+
+    <div class="step-container">
+      <div class="step-item">
+        <div>
+          <img src="/liff2/img/phone.png" alt="">
+        </div>
+        <div class="text">
+          <h3>如何 2 步驟分享給好友</h3>
+          <div>
+            <p>步驟 1</p>
+            <p>請點擊登入 LINE 帳號。<br>(第一次使用需授予許可)</p>
+          </div>
+          <img src="/liff2/img/arrow.png" alt="">
+          <div>
+            <p>步驟 2</p>
+            <p>請點擊「發傳單給最多五位好友」,<br>選擇發送對象後按下分享即可傳送。</p>
+          </div>
+        </div>
+      </div>
+    </div>
+
+    <center>
+      <img
+        src="https://firebasestorage.googleapis.com/v0/b/uce-bot.appspot.com/o/user.jpg?alt=media&token=554b90c5-562c-469a-bfee-f36b5e3f54c9"
+        style="border-radius: 10px;" width="150px" height="150px" id="profileImage" />
+    </center>
+
+    <center>
+      <button onclick="login()">登入 LINE</button>
+      <button onclick="logout()">登出 LINE</button>
+      <button id="senddm" onclick="shareTargetPicker()">發傳單給最多十個好友</button>
+    </center>
+  </div>
+
+  <p id="load">ChoozMo</p>
+  <script src="https://static.line-scdn.net/liff/edge/2.1/sdk.js"></script>
+  <script src="js/liff-init.js?1234"></script>
+  <script src="js/liff-functions.js?12345"></script>
+  <script src="https://unpkg.com/axios/dist/axios.min.js"></script>
+</body>
+
+</html>

+ 135 - 0
misa/js/liff-functions.js

@@ -0,0 +1,135 @@
+// const liffId = "1657279859-Nz2nKkQA";
+
+function getProfile() {
+  liff
+    .getProfile()
+    .then(profile => {
+      console.log(JSON.stringify(profile));
+      window.alert(JSON.stringify(profile));
+    })
+    .catch(e => {
+      console.log(e);
+      window.alert(e);
+    });
+}
+function getAccessToken() {
+  window.alert(liff.getAccessToken());
+}
+function getContext() {
+  window.alert(JSON.stringify(liff.getContext()));
+}
+
+function sendMessage() {
+  liff
+    .sendMessages([{ type: "text", text: "中文測試 Hello from LIFF2.0" }])
+    .then(() => {
+      window.alert("Message has been sent");
+    })
+    .catch(e => {
+      window.alert(e);
+    });
+}
+
+
+function login() {
+  console.log('login');
+  // liff.login();
+  liff.login({
+    // 使用者登入後要去到哪個頁面
+    redirectUri: 'https://liff.googo.org/misa/'
+  });
+  // (async () => {
+  //   await liff.init({ liffId: liffId })
+  //   if (new URL(window.location).searchParams.get('liff.state')) return
+  //   const liffLoginRedirect = sessionStorage.getItem('liffLoginRedirect')
+  //   if (_.isString(liffLoginRedirect)) {
+  //     sessionStorage.removeItem('liffLoginRedirect')
+  //     location.href = liffLoginRedirect
+  //     console.log(liffLoginRedirect)
+  //   }
+
+  // })()
+
+}
+
+function scanCode() {
+  liff
+    .scanCode()
+    .then(result => {
+      window.alert(JSON.stringify(result));
+    })
+    .catch(e => {
+      window.alert(e);
+    });
+}
+
+function openWindow() {
+  liff.openWindow({
+    url: "https://sirateek.me",
+    external: true
+  });
+}
+
+function closeWindow() {
+  liff.closeWindow();
+}
+
+function logout() {
+  if (liff.isLoggedIn()) {
+    liff.logout();
+    window.alert("Successfully to Logout");
+  
+
+    location.reload();
+  }
+}
+
+
+function createFlexMessageData() {
+  var flex = {
+    "type": "flex",
+    "altText": redistitle,
+    "contents": redisdata,
+  };
+
+  return flex;
+}
+
+var redisdata = '';
+
+function shareTargetPicker() {
+
+  const url = 'https://liff.googo.org:9898/misa'
+  axios
+    .get(url)
+    .then(({ data }) => {
+      console.log('data', data);
+      redisdata = data.data;
+      redistitle = data.title;
+      console.log(redistitle);
+      console.log(redisdata);
+
+      liff
+        .shareTargetPicker([
+          createFlexMessageData()
+        ])
+        .then(() => {
+          alert("Shared to the friend(s) you picked");
+        })
+        .catch(function (res) {
+          alert(res);
+        });
+
+    });
+
+
+
+}
+
+(function test() {
+
+  setTimeout(() => {
+    liff.isLoggedIn();
+    console.log('123');
+  }, 3000);
+})();

+ 93 - 0
misa/js/liff-init.js

@@ -0,0 +1,93 @@
+
+// ----- Configuration Zone! -----
+// Don't forget to change this to your LIFF ID
+
+// const liffId = "1657114132-2vvKr7Pe";
+const liffId = "1657114132-lvaMW1wP";
+
+
+// Don't forget to change this to your LIFF ID
+
+
+liff.init(
+  { liffId: liffId },
+  () => {
+    initLIFF();
+  },
+  err => {
+    window.alert(err);
+  }
+);
+
+function initLIFF() {
+  if (liff.isLoggedIn()) {
+    liff
+      .getProfile()
+      .then(profile => {
+        console.log('profile', profile);
+        document.getElementById("profileImage").src = profile.pictureUrl;
+
+        //        document.getElementById("userId").innerHTML = profile.userId;
+        //      document.getElementById("displayName").innerHTML = profile.displayName;
+        //      document.getElementById("statusMessage").innerHTML =
+        //      profile.statusMessage;
+        //        document.getElementById("pictureUrl").href = profile.pictureUrl;
+        //      document.getElementById("pictureUrl").innerHTML = profile.pictureUrl;
+        //    document.getElementById(
+        //    "email"
+        //  ).innerHTML = liff.getDecodedIDToken().email;
+      })
+      .catch(e => {
+        //  document.getElementById("userId").innerHTML = "No data, " + e;
+        //  document.getElementById("displayName").innerHTML = "No data, " + e;
+        //  document.getElementById("statusMessage").innerHTML = "No data, " + e;
+        // document.getElementById("pictureUrl").innerHTML = "No data, " + e;
+        //document.getElementById("email").innerHTML = "No data, " + e;
+      });
+  } else {
+    //    document.getElementById("userId").innerHTML = "No data, Login first";
+    //  document.getElementById("displayName").innerHTML = "No data, Login first";
+    //   document.getElementById("statusMessage").innerHTML = "No data, Login first";
+    //  document.getElementById("pictureUrl").innerHTML = "No data, Login first";
+    //  document.getElementById("email").innerHTML = "No data, Login first";
+  }
+
+  //  document.getElementById("getOS").innerHTML = liff.getOS();
+  //document.getElementById("getLanguage").innerHTML = liff.getLanguage();
+  // document.getElementById("getVersion").innerHTML = liff.getVersion();
+  // document.getElementById("isInClient").innerHTML = liff.isInClient();
+  //document.getElementById("isLoggedIn").innerHTML = liff.isLoggedIn();
+  var context = liff.getContext();
+  if (context !== null) {
+    //    document.getElementById("context_type").innerHTML = context.type;
+    //   document.getElementById("context_viewType").innerHTML = context.viewType;
+    //  document.getElementById("context_userId").innerHTML = context.userId;
+    if (context.utouId) {
+      //      document.getElementById("context_utouId").innerHTML = context.utouId;
+    } else {
+      //     document.getElementById("context_utouId").innerHTML =
+      //      "You are not in the utou";
+    }
+    if (context.roomId) {
+      //      document.getElementById("context_roomId").innerHTML = context.roomId;
+    } else {
+      //     document.getElementById("context_roomId").innerHTML =
+      //      "You are not in the room";
+    }
+    if (context.groupId) {
+      //    document.getElementById("context_groupId").innerHTML = context.groupId;
+    } else {
+      //    document.getElementById("context_groupId").innerHTML =
+      //     "You are not in the group ";
+    }
+  } else {
+    //   document.getElementById("context_type").innerHTML = "No data.";
+    //  document.getElementById("context_viewType").innerHTML = "No data.";
+    // document.getElementById("context_userId").innerHTML = "No data.";
+    // document.getElementById("context_utouId").innerHTML = "No data.";
+    //document.getElementById("context_roomId").innerHTML = "No data.";
+    // document.getElementById("context_groupId").innerHTML = "No data.";
+  }
+}
+
+