Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/amazon-web-services/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
拉取og:image时出现Facebook错误_Facebook_Amazon Web Services_Amazon S3_Share - Fatal编程技术网

拉取og:image时出现Facebook错误

拉取og:image时出现Facebook错误,facebook,amazon-web-services,amazon-s3,share,Facebook,Amazon Web Services,Amazon S3,Share,无论出于何种原因,我在FB上共享链接时尝试使用的图像无法加载。给出的确切错误是: 提供的og:image,无法下载。这可能是由于多种原因造成的,例如您的服务器使用了不受支持的内容编码。爬虫程序接受deflate和gzip内容编码 我使用一个s3存储桶来保存我的图像,就我而言,这个存储桶是公共的,我可以在任何浏览器上加载这些图像。我还将og:image、og:image:url、og:image:secure\u url、og:image:height、og:image:width和og:imag

无论出于何种原因,我在FB上共享链接时尝试使用的图像无法加载。给出的确切错误是:

提供的og:image,无法下载。这可能是由于多种原因造成的,例如您的服务器使用了不受支持的内容编码。爬虫程序接受deflate和gzip内容编码


我使用一个s3存储桶来保存我的图像,就我而言,这个存储桶是公共的,我可以在任何浏览器上加载这些图像。我还将og:image、og:image:url、og:image:secure\u url、og:image:height、og:image:width和og:image:type添加到meta标记中,就meta标记而言,我认为我已经涵盖了所有方面。是否有我应该添加的特定设置?多亏了大家的帮助

过了一段时间,我终于解决了这个问题。事实证明,FB共享器不接受base64图像。我所做的是直接将base64二进制文件保存到S3,因此FB无法显示图像


因此,如果有人正在做与我相同的事情,请先将base64图像保存到文件/目录中,然后再将其上载到S3。

对于其他到此结束的人,我暂时遇到了此问题。异步获取图像,并可能给出错误的404


我建议再刮几次以确认。

首先我将HTML转换为画布,然后将画布转换为图像,然后使用画布绘制此图像,以便裁剪初始图像以消除额外空间。完成后,图像被发送到服务器进行存储,并在og:image meta标记中传递给FB

$scope.facebookShared = () ->

      $window.open "//www.facebook.com/sharer/sharer.php?u=" + encodeURI($location.absUrl()), "sharer", "toolbar=0,status=0,width=" + 500 + ",height=" + 500 /// this is window for share fb

      height=$('.sharing').height()
      html2canvas document.body,
        onrendered: (canvas) ->

          context = canvas.getContext('2d')
          image = new Image()
          image.src = canvas.toDataURL("image/png")
          image.onload = ->
            sharing=$('.sharing')
            canvas.height = Math.round(sharing.width()/1.91)
            canvas.width = sharing.width()

            context=canvas.getContext('2d')

            pos =  sharing.parent(0).parent(0).position()
            context.drawImage(this, pos.left, pos.top, sharing.width() + 20, sharing.height(),0,0,sharing.width()+20,sharing.height())

            $.ajax
              url: '../../save_img'
              type: 'post'
              beforeSend: (xhr) ->
                xhr.setRequestHeader "X-CSRF-Token", $("meta[name=\"csrf-token\"]").attr("content")
                return
              data:
                base64_image: canvas.toDataURL("image/png").replace(/^data:image\/(png|jpg);base64,/, "")
                claim_slug: $scope.claim.slug

            return false

        width: $('.claim-page ').width()
        height: height+115

      return

bucket中图像的元数据(如内容类型)如何?是否成功?我正在尝试通过前端将图像上传到lambda,然后再上传到S3。有什么办法可以解决这个问题?是的,只需要再做一次。谢谢。在看到这个答案之前浪费了5分钟!对我来说也是第二次。