플라스크 앱에 Facebook을 통합하려고합니다. Facebook SDK for JavaScript은 매끄럽고 사용하기 쉽습니다. 하지만 데이터 서버 쪽을 전달하는 데 문제가 있습니다 (필요한 모든 것은 사용자의 페이스 북 ID입니다). 여기 내 베어 플라스크 응용 프로그램입니다 :플라스크에 쿠키가 설정되지 않았습니다.
from flask import Flask, render_template, session, request, redirect, url_for
app = Flask(__name__)
app.config['SECRET_KEY'] = '123'
@app.route('/')
def index():
print('cookies', request.cookies)
return render_template('get_fb_cookies.html')
@app.route('/set_key')
def set_key():
session['key'] = 'value'
return redirect(url_for('index'))
if __name__ == '__main__':
app.run(debug=True)
그리고 여기에 사용자가 클라이언트 측/로그인 로그 아웃 (과 페이스 북의 API의 여러 다른 부분을 이용) 할 수 있습니다 내 베어 템플릿의이 읽기
<!doctype html>
<html lang="en">
<body>
<script>
window.fbAsyncInit = function() {
FB.init({
appId : '<app-id>',
cookies : true,
version : 'v2.10' // use graph api version 2.10
});
FB.getLoginStatus(function(response) {
statusChangeCallback(response);
});
};
// Load the SDK asynchronously
(function(d, s, id) {
var js, fjs = d.getElementsByTagName(s)[0];
if (d.getElementById(id)) return;
js = d.createElement(s); js.id = id;
js.src = "//connect.facebook.net/en_US/sdk.js"; // minified version version
fjs.parentNode.insertBefore(js, fjs);
}(document, 'script', 'facebook-jssdk'));
// This is called with the results from from FB.getLoginStatus().
function statusChangeCallback(response) {
if (response.status === 'connected') {
FB.api('/me', function(response){
console.log('Successful login for: ' + response.name);
console.log('ID: ' + response.id)
});
} else {
console.log('Not connected.')
}
};
</script>
<div id="fb-root"></div>
<h1>Get Facebook Cookies</h1>
<div class="fb-login-button" data-max-rows="1" data-size="medium" data-button-type="login_with" data-show-faces="false" data-auto-logout-link="true"></div>
</body>
</html>
을 SO question, 쿠키 측 서버에 액세스해야하지만, request.cookies
은 쿠키를 flask.session
으로 설정하면됩니다. 어쩌면 쿠키 facebook 세트를 변경해야합니다. 지금은 약 10 개가 .facebook.com
으로 설정되어 있습니다. localhost
(또는 내 서버가 어디에서 실행 중인지)로 설정해야한다고 생각합니다.
이것은 가능한가, 아니면 사용자의 페이스 북 ID 서버 측에 액세스하기 위해 다른 접근 방식을 고려해야 할 필요가 있습니까?
우수 아이디어에 플라스크 응용 프로그램에 대한 GET 또는 POST 요청을 사용하는 것이 좋습니다 것입니다. 고맙습니다! –