我正在使用 Google App Engine 项目,我想像这样使用 facebook 共享。
http://i.stack.imgur.com/uz52n.png
我已经读过这篇
文章 Facebook Sharer 如何在分享我的 URL 时选择图片和其他元数据?
但GAE无法上传物理图像,所有图像存储在数据库中的blob属性中作为base64所以facebook分享无法获取图像:(有人对这个问题有其他想法吗??
问问题
493 次
1 回答
0
Facebook 读取 og:image 元数据以从您的网页中解析图像。og:image 不允许数据 URI 图像(base64 编码)。
您必须在 og:image 中提供图像 url,但使用该 url,您可以制定一种解决方法来模拟直接图像分辨率的行为并从您的 appengine 数据库中获取图像。
这是一个使用 Django 的 python 解决方案,但这个概念适用于一切。图像的名称在这里是“key.png”,其中 key 是包含 base64 存储图像的对象的键。
首先,为您的图像分辨率添加一个 url 到 django url 列表中:
(r'^image/(?P<key>[^\.^/]+)\.png$', 'yourapp.views.image'),
然后在您的视图中,从 url 获取密钥,检索您的对象,base64 解码并使用正确的 mimetype 将其发送回:
import base64
def image(request, key):
# get your object from database
f = YourImageObject.get(key)
# f.pic is the base64 encoded image
pic = f.pic[len("data:image/png;base64,"):] # remove the header
# base64 decode and respond with correct mimetype
return HttpResponse(base64.b64decode(pic), mimetype="image/png")
于 2013-07-30T14:32:34.137 回答