我在我的django项目中使用python social auth来提供Facebook登录功能.我可以在弹出窗口中看到Facebook提供的电子邮件.但它在我的部分管道中变得空洞.相同的代码与我的其他Facebook应用程序正常工作,除了api版本之外设置完全相同(以前它是2.3,现在是2.4).没有选项可以将Facebook api版本更改为2.3.我的python-social-auth版本是0.2.12以下是我的设置文件中的相关数据
SOCIAL_AUTH_FACEBOOK_SCOPE = ['email',]
FACEBOOK_EXTENDED_PERMISSIONS = ['email',]
SOCIAL_AUTH_USERNAME_IS_FULL_EMAIL = True
SOCIAL_AUTH_PROTECTED_USER_FIELDS = ['email',]
SOCIAL_AUTH_LOGIN_REDIRECT_URL = '/'
SOCIAL_AUTH_LOGIN_ERROR_URL = '/'
SOCIAL_AUTH_PIPELINE = (
'social.pipeline.social_auth.social_details',
'social.pipeline.social_auth.social_uid',
'social.pipeline.social_auth.auth_allowed',
'social.pipeline.social_auth.social_user',
'social.pipeline.user.get_username',
'home.pipeline.require_email',
'social.pipeline.social_auth.associate_by_email', # <--- enable this one
'social.pipeline.user.create_user',
'social.pipeline.social_auth.associate_user',
'social.pipeline.social_auth.load_extra_data',
'social.pipeline.user.user_details',
'home.pipeline.send_welcome_mail',
)
SOCIAL_AUTH_FACEBOOK_KEY = os.environ['SOCIAL_AUTH_FACEBOOK_KEY']
SOCIAL_AUTH_FACEBOOK_SECRET = os.environ['SOCIAL_AUTH_FACEBOOK_SECRET']
Run Code Online (Sandbox Code Playgroud)
这是我的自定义部分管道功能
@partial
def require_email(strategy, backend, uid, details, user=None, *args, **kwargs):
print details
#some stuff......
Run Code Online (Sandbox Code Playgroud)
此功能打印空电子邮件ID,如下所示
{'username': u'Anurag Jain', 'fullname': u'Anurag Jain', 'last_name': u'Jain', 'email': '', 'first_name': u'Anurag'}
Run Code Online (Sandbox Code Playgroud)
任何人都可以帮我解决这个问题.
我正在尝试执行远程服务器上的脚本。该脚本激活虚拟环境,然后执行一些命令。现在我想直接从我的 mac 终端执行这个脚本。这是脚本的内容
cd ~/workdir/
workon myvirtualenv
source ~/prodStuff/envVars
git pull origin master
supervisorctl -u admin -p password restart gunicorn
supervisorctl -u admin -p password status
deactivate
Run Code Online (Sandbox Code Playgroud)
当我登录服务器并执行它时,该脚本运行良好。但是当我尝试从 mac 终端执行相同的操作时,它给出了以下错误
/home/ubuntu/scripts/deploy_code.sh: line 2: workon: command not found
Run Code Online (Sandbox Code Playgroud)
所以本质上,我无法切换到虚拟环境。这是我用来从终端执行脚本的命令
ssh prodserver ". /home/ubuntu/scripts/deploy_code.sh"
Run Code Online (Sandbox Code Playgroud)
如果有人能帮助我解决这个问题,我将不胜感激。
谢谢
我遇到一个奇怪的问题,我的一些任务在发送给经纪人后会被删除.这种情况发生在大约十分之一的任务中.我已经检查过没有老芹菜工人在完成任务.
我使用数据库支持的后端和花来监视丢失的任务,但在apply_async之后返回的task_id不存在于数据库或花中.它的状态总是待定.
然后我用celery信号找出发生了什么.我发现对于丢失的任务,只触发before_task_publish和after_task_publish信号.发布此任务没有任何痕迹.
这些是我的信号
@before_task_publish.connect
def before_task_publish_handler(sender=None, headers=None, body=None, **kwargs):
# information about task are located in headers for task messages
# using the task protocol version 2.
logger.info("BEFORE TASK SENT id:"+body['id'])
@after_task_publish.connect
def after_task_publish_handler(sender=None, headers=None, body=None, exchange=None, routing_key=None, **kwargs):
# information about task are located in headers for task messages
# using the task protocol version 2.
logger.info("AFTER TASK SENT id:"+body['id'])
@task_prerun.connect
def task_prerun_handler(sender=None, task_id=None, task=None, **kwargs):
logger.info("TASK PRERUN with TASK_ID:"+str(task_id))
Run Code Online (Sandbox Code Playgroud)
这是我在日志中发现的
$ cat gunicorn-access.log | grep …Run Code Online (Sandbox Code Playgroud) 
我想将上面显示的数字选择器的分隔线颜色(蓝色)更改为透明。我尝试了很多事情,比如
number_picker.setDividerDrawable(getResources().getDrawable(R.color.transparent));
number_picker.setShowDividers(NumberPicker.SHOW_DIVIDER_NONE);
Run Code Online (Sandbox Code Playgroud)
我也试过设置 android:divider in xml 但没有一个工作
然后我尝试使用样式设置它,但是当我将以下条目放入我的样式时,它说所需的最低版本为 14,而我的应用程序的最低版本为 11
<style name="AppTheme" parent="@android:style/Widget.DeviceDefault.DatePicker">
<!-- All customizations that are NOT specific to a particular API-level can go here. -->
<item name="android:divider">@color/transparent</item>
</style>
Run Code Online (Sandbox Code Playgroud)
谁能建议我如何实现这一目标?
django ×2
amazon-s3 ×1
android ×1
celery ×1
celery-task ×1
divider ×1
numberpicker ×1
rabbitmq ×1
ssh ×1
transparent ×1
virtualenv ×1