Django环境下集成WhatsApp嵌入式注册时Facebook JS SDK无法返回授权码的问题求助
Django环境下集成WhatsApp嵌入式注册时Facebook JS SDK无法返回授权码的问题求助
我正在尝试用Facebook SDK实现WhatsApp嵌入式注册,但FB.login()的回调函数里拿不到预期的授权码。以下是我按照官方文档实现的前端代码:
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>Embedded Signup</title> </head> <body> <!-- SDK loading --> <script async defer crossorigin="anonymous" src="https://connect.facebook.net/en_US/sdk.js"></script> <script> // SDK initialization window.fbAsyncInit = function() { FB.init({ appId: 'appId', // my app ID autoLogAppEvents: true, xfbml: true, version: 'v22.0' // Graph API version }); }; // Session logging message event listener window.addEventListener('message', (event) => { if (event.origin !== "https://www.facebook.com" && event.origin !== "https://web.facebook.com") return; try { const data = JSON.parse(event.data); if (data.type === 'WA_EMBEDDED_SIGNUP') { console.log('message event: ', data); // Debugging log } } catch { console.log('message event: ', event.data); // Debugging log } }); // Response callback const fbLoginCallback = (response) => { if (response.authResponse) { const code = response.authResponse.code; // Expected authorization code console.log('response: ', code); // Debugging log } else { console.log('response: ', response); // Debugging log } }; // Launch method and callback registration const launchWhatsAppSignup = () => { FB.login(fbLoginCallback, { config_id: 'config_id', // my configuration ID response_type: 'code', override_default_response_type: true, extras: { setup: {}, featureType: '', sessionInfoVersion: '3', } }); }; </script> <!-- Launch button --> <button onclick="launchWhatsAppSignup()" style="background-color: #1877f2; border: 0; border-radius: 4px; color: #fff; cursor: pointer; font-family: Helvetica, Arial, sans-serif; font-size: 16px; font-weight: bold; height: 40px; padding: 0 24px;">Login with Facebook</button> </body> </html>
下面是用来渲染该页面的简单Django视图函数:
@csrf_exempt def hello_view(request): return render(request, 'test.html')
点击“Login with Facebook”按钮会触发launchWhatsAppSignup(),但回调里的authResponse对象没有预期的授权码。看起来Django根本没等用户完成注册流程,我一点按钮就直接返回了空值。但我用纯原生JS跑这个HTML的时候是正常的,有没有解决办法?
备注:内容来源于stack exchange,提问作者drawhouse
相关产品推荐
相关产品推荐

