我正在开发一个应用程序,我想实现“共享”功能,它可以将内容分享到Facebook或Twitter。每个内容都有自己的ID,我想在单击“共享”按钮时生成散列链接。比方说,如果有一篇文章A,我想把它分享给Facebook,所以我点击“分享到脸书”按钮。然后它应该生成一个url,看起来像“http // my_app_backstage_server / essay / hash(id)”,其中hash(id)不是内容的真实id,而是哈希值。我如何在Flask框架中实现它? 谢谢!
答案 0 :(得分:1)
Facebook like button或twitter只需在Facebook上创建指向您网页的链接(如果您不想为此操作生成特殊链接)。因此,您只需提供内容页面访问权限。
您可以生成随机字符串或实际哈希并将其存储在数据库中(不要忘记此值必须是唯一的):
import random
import string
from hashlib import sha512
SIMPLE_CHARS = string.ascii_letters + string.digits
def get_random_string(length=24):
return ''.join(random.choice(SIMPLE_CHARS) for i in xrange(length))
def get_random_hash(length=24):
hash = sha512()
hash.update(get_random_string())
return hash.hexdigest()[:length]
我认为你不需要同时拥有内容的id和hash访问权。
如果你想为任何分享按钮动作生成链接(我真的不明白为什么):