如何在Ionic应用程序中允许来自facebook cdn的图像?

时间:2017-06-05 16:06:58

标签: facebook cordova ionic-framework firebase-authentication content-security-policy

我突然无法在我的Ionic 1应用程序(使用Facebook提供商的Firebase身份验证)中加载来自Facebook(https://scontent.xx.fbcdn.net)的个人资料图片。这之前有用,但现在我只得到一个空白图像(可能是某种4xx错误代码?)。 iOS和Android。

我安装了cordova-plugin-whitelist,我的config.xml<access origin="*"/>

我试图添加content-security-policy元标记而没有任何运气:

<meta http-equiv="Content-Security-Policy" content="img-src *  blob: android-webview-video-poster: cdvphotolibrary:  'self' data: ws: wss://*; default-src * blob: 'self' gap: wss: ws: data:; style-src 'self' 'unsafe-inline'; script-src 'self' 'unsafe-inline' 'unsafe-eval'; connect-src * http: https: ws: wss://*;">

有什么想法吗?我知道这之前有用,所以Cordova或iOS / Android可能会有一些变化导致这种情况发生吗?

谢谢!

更新

我试图使用其他外部图像,例如来自报纸的随机图像,我工作了。这可能是某种Facebook版权错误吗?

ionic info
--------------------------------
--------------------------------

Your system information:

Cordova CLI: 6.3.1
Gulp version:  CLI version 1.2.1
Gulp local:   Local version 3.9.1
Ionic Framework Version: 1.3.2
Ionic CLI Version: 2.1.1
Ionic App Lib Version: 2.1.1
ios-deploy version: 1.8.6 
ios-sim version: 5.0.6 
OS: Mac OS X Sierra
Node Version: v4.4.0
Xcode version: Xcode 8.3.1 Build version 8E1000a

1 个答案:

答案 0 :(得分:0)

我设法通过手动获取配置文件图像来解决问题。 Firebase SDK提供的图像仍然无效。

var user = firebase.auth().currentUser;

if (user != null) {
  user.providerData.forEach(function (profile) {
    if (profile.providerId === "facebook.com") {
      user.updateProfile({
        photoURL : "https://graph.facebook.com/" + profile.uid + "/picture?height=200"
      });
    }
  });
}