ntphuc149 commited on
Commit
ec674f6
·
verified ·
1 Parent(s): d68fdb5

Update app.py

Browse files
Files changed (1) hide show
  1. app.py +100 -91
app.py CHANGED
@@ -345,109 +345,118 @@ with tab1:
345
  # TAB 2: FACEBOOK OAUTH
346
  # =============================
347
  with tab2:
348
- st.title("Facebook OAuth Integration")
349
 
350
- # Định nghĩa hàm đăng ký webhook Facebook
351
- def register_facebook_webhook(page_id: str, page_access_token: str):
352
- try:
353
- url = f"https://graph.facebook.com/v19.0/{page_id}/subscribed_apps"
354
- params = {
355
- "subscribed_fields": "messages,messaging_postbacks",
356
- "access_token": page_access_token
357
- }
358
-
359
- response = requests.post(url, params=params)
360
- response.raise_for_status()
361
- data = response.json()
362
-
363
- if data.get("success"):
364
- return True, "Đăng ký webhook thành công."
365
- else:
366
- return False, f"Facebook trả về lỗi: {data}"
367
- except requests.exceptions.RequestException as e:
368
- return False, f"Lỗi khi gọi Facebook API: {e}"
369
 
370
- if "token" not in st.session_state:
371
- params = {
372
- "client_id": FB_APP_ID,
373
- "redirect_uri": FB_REDIRECT_URI,
374
- "scope": "pages_show_list,pages_manage_metadata,pages_messaging",
375
- }
376
- auth_url = f"{FB_CLIENT_URL}/dialog/oauth?{urlencode(params)}"
377
- st.markdown("### Step 1: Đăng nhập Facebook")
378
- st.markdown(f"[Bấm vào đây để đăng nhập Facebook]({auth_url})")
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
379
 
380
- query_params = st.query_params
381
 
382
- if "code" in query_params:
383
- code = query_params["code"]
384
 
385
- try:
386
- token_response = requests.get(f"{FB_API_URL}/oauth/access_token", params={
387
- "client_id": FB_APP_ID,
388
- "redirect_uri": FB_REDIRECT_URI,
389
- "client_secret": FB_APP_SECRET,
390
- "code": code,
391
- })
392
 
393
- token = token_response.json()["access_token"]
394
- st.session_state.token = token
395
- st.success("🎉 Lấy access token thành công!")
396
-
397
- st.markdown("""
398
- <script>
399
- const url = new URL(window.location.href);
400
- url.searchParams.delete("code");
401
- window.location.href = url.pathname;
402
- </script>
403
- """, unsafe_allow_html=True)
404
 
405
- # Lấy page
406
- pages_response = requests.get(f"{FB_API_URL}/me/accounts", params={"access_token": token})
407
- pages = pages_response.json().get("data", [])
408
- st.session_state.pages = pages
409
 
410
- st.markdown("### Danh sách các Page bạn quản lý:")
411
- for page in pages:
412
- st.json(page)
413
 
414
- except Exception as e:
415
- st.error(f"Lỗi khi trao đổi token: {e}")
416
 
417
- if "pages" in st.session_state and st.session_state.pages:
418
- st.markdown("### Step 3: Đăng ký Webhook cho các page")
419
- selected_pages = st.multiselect(
420
- "Chọn các page để đăng ký webhook:",
421
- options=[f"{p['name']} ({p['id']})" for p in st.session_state.pages]
422
- )
423
 
424
- if st.button("Đăng ký Webhook"):
425
- # selected_pages = st.session_state.selected_pages # Giả sử bạn có danh sách page đã chọn
426
- for page in st.session_state.pages:
427
- label = f"{page['name']} ({page['id']})"
428
- if label in selected_pages:
429
- page_id = page['id']
430
- page_access_token = page['access_token']
431
 
432
- response = requests.post(f"{FB_BACKEND_URL}/register-webhook", json={
433
- "page_id": page_id,
434
- "page_access_token": page_access_token
435
- })
436
- res_json = response.json()
437
 
438
- if res_json["success"]:
439
- st.success(f"✅ Đã đăng ký Webhook cho page: {page['name']}")
440
- else:
441
- st.warning(f"⚠️ Lỗi với page {page['name']}: {res_json['message']}")
442
 
443
- if st.button("Hiển thị Thông tin Trang"):
444
- for page in st.session_state.pages:
445
- page_id = page['id']
446
- page_name = page['name']
447
- page_access_token = page['access_token']
448
 
449
- # Hiển thị thông tin của từng page
450
- st.write(f"**Page Name**: {page_name}")
451
- st.write(f"**Page ID**: {page_id}")
452
- st.write(f"**Page Access Token**: {page_access_token}")
453
- st.write("---") # Dấu phân cách giữa các trang
 
345
  # TAB 2: FACEBOOK OAUTH
346
  # =============================
347
  with tab2:
348
+ st.title("Đăng nhập Facebook để lấy Page Access Token")
349
 
350
+ # Tạo link login
351
+ login_url = f"{FB_BACKEND_URL}/facebook/login"
352
+
353
+ st.markdown(f"[👉 Bấm vào đây để đăng nhập Facebook]({login_url})")
354
+
355
+ st.info("Sau khi đăng nhập xong, bạn có thể quay lại ứng dụng này. Thông tin page đã được in ra ở backend.")
356
+
357
+ # st.title("Facebook OAuth Integration")
 
 
 
 
 
 
 
 
 
 
 
358
 
359
+ # # Định nghĩa hàm đăng ký webhook Facebook
360
+ # def register_facebook_webhook(page_id: str, page_access_token: str):
361
+ # try:
362
+ # url = f"https://graph.facebook.com/v19.0/{page_id}/subscribed_apps"
363
+ # params = {
364
+ # "subscribed_fields": "messages,messaging_postbacks",
365
+ # "access_token": page_access_token
366
+ # }
367
+
368
+ # response = requests.post(url, params=params)
369
+ # response.raise_for_status()
370
+ # data = response.json()
371
+
372
+ # if data.get("success"):
373
+ # return True, "Đăng ký webhook thành công."
374
+ # else:
375
+ # return False, f"Facebook trả về lỗi: {data}"
376
+ # except requests.exceptions.RequestException as e:
377
+ # return False, f"Lỗi khi gọi Facebook API: {e}"
378
+
379
+ # if "token" not in st.session_state:
380
+ # params = {
381
+ # "client_id": FB_APP_ID,
382
+ # "redirect_uri": FB_REDIRECT_URI,
383
+ # "scope": "pages_show_list,pages_manage_metadata,pages_messaging",
384
+ # }
385
+ # auth_url = f"{FB_CLIENT_URL}/dialog/oauth?{urlencode(params)}"
386
+ # st.markdown("### Step 1: Đăng nhập Facebook")
387
+ # st.markdown(f"[Bấm vào đây để đăng nhập Facebook]({auth_url})")
388
 
389
+ # query_params = st.query_params
390
 
391
+ # if "code" in query_params:
392
+ # code = query_params["code"]
393
 
394
+ # try:
395
+ # token_response = requests.get(f"{FB_API_URL}/oauth/access_token", params={
396
+ # "client_id": FB_APP_ID,
397
+ # "redirect_uri": FB_REDIRECT_URI,
398
+ # "client_secret": FB_APP_SECRET,
399
+ # "code": code,
400
+ # })
401
 
402
+ # token = token_response.json()["access_token"]
403
+ # st.session_state.token = token
404
+ # st.success("🎉 Lấy access token thành công!")
405
+
406
+ # st.markdown("""
407
+ # <script>
408
+ # const url = new URL(window.location.href);
409
+ # url.searchParams.delete("code");
410
+ # window.location.href = url.pathname;
411
+ # </script>
412
+ # """, unsafe_allow_html=True)
413
 
414
+ # # Lấy page
415
+ # pages_response = requests.get(f"{FB_API_URL}/me/accounts", params={"access_token": token})
416
+ # pages = pages_response.json().get("data", [])
417
+ # st.session_state.pages = pages
418
 
419
+ # st.markdown("### Danh sách các Page bạn quản lý:")
420
+ # for page in pages:
421
+ # st.json(page)
422
 
423
+ # except Exception as e:
424
+ # st.error(f"Lỗi khi trao đổi token: {e}")
425
 
426
+ # if "pages" in st.session_state and st.session_state.pages:
427
+ # st.markdown("### Step 3: Đăng ký Webhook cho các page")
428
+ # selected_pages = st.multiselect(
429
+ # "Chọn các page để đăng ký webhook:",
430
+ # options=[f"{p['name']} ({p['id']})" for p in st.session_state.pages]
431
+ # )
432
 
433
+ # if st.button("Đăng ký Webhook"):
434
+ # # selected_pages = st.session_state.selected_pages # Giả sử bạn có danh sách page đã chọn
435
+ # for page in st.session_state.pages:
436
+ # label = f"{page['name']} ({page['id']})"
437
+ # if label in selected_pages:
438
+ # page_id = page['id']
439
+ # page_access_token = page['access_token']
440
 
441
+ # response = requests.post(f"{FB_BACKEND_URL}/register-webhook", json={
442
+ # "page_id": page_id,
443
+ # "page_access_token": page_access_token
444
+ # })
445
+ # res_json = response.json()
446
 
447
+ # if res_json["success"]:
448
+ # st.success(f"✅ Đã đăng ký Webhook cho page: {page['name']}")
449
+ # else:
450
+ # st.warning(f"⚠️ Lỗi với page {page['name']}: {res_json['message']}")
451
 
452
+ # if st.button("Hiển thị Thông tin Trang"):
453
+ # for page in st.session_state.pages:
454
+ # page_id = page['id']
455
+ # page_name = page['name']
456
+ # page_access_token = page['access_token']
457
 
458
+ # # Hiển thị thông tin của từng page
459
+ # st.write(f"**Page Name**: {page_name}")
460
+ # st.write(f"**Page ID**: {page_id}")
461
+ # st.write(f"**Page Access Token**: {page_access_token}")
462
+ # st.write("---") # Dấu phân cách giữa các trang