对于我的CMS组件,我正在实现与Twitter API的集成,以获取和显示推文列表(连接到用户或搜索查询)。我正在使用Twitter Restful API v1.1,因为1.0版本将在two months中删除。对我而言,有两个有趣的请求是user_timeline和search一个。
由于我的技术强烈依赖于缓存,我需要尽可能避免服务器端处理,提供静态html和javascript。我已经为旧版API做了它,它工作正常。然而,新方法需要通过OAuth提供身份验证数据。其中一个属性(oath_signature
)是其他属性的哈希值(其中有oauth_timestamp
和oath_nonce
,应该(如果它们?)每个Twitter请求都是唯一的)和秘密因此,在客户端生成密钥会使其不安全。
是否有任何安全的方法可以使用新API在客户端获取推文列表?
答案 0 :(得分:1)
对你的问题的简单回答是,“不,没有服务器端代码就没有安全的方法。”我要做的是设置一个服务,每隔xxxx秒轮询Twitter并检索所需的推文。您应该缓存或存储结果,然后在每次发出下一个请求时清空它们。如果你正在使用C#,我一直在研究复制Twitter API的C# Twitter library,并且已经支持抓取用户的时间线。我将在接下来的两天内添加对过滤器和搜索的支持(每个应该花费不超过十分钟的时间来实现,不包括测试,如果你决定自己做)。您可以在我之前提到的服务中引用此库。
如果您没有所需的服务器资源,那么我强烈建议您不要使用绕过Twitter预期证券的解决方案,因为它可能会使您或您的客户处于弱势地位。
答案 1 :(得分:0)
您必须在服务器端编写代理Web服务。正如你所说的那样,缓存对于避免每15分钟发出一次基本内容(如拉动推文)的15个请求至关重要。
绝对避免在前端做任何身份验证。使用OAuth 2的新“application only”身份验证允许您在JavaScript中嵌入持有者令牌,这意味着您无需执行任何您正在谈论的签名内容。但不要。任何人都可以使用您的持票人令牌,如果您自己的用户没有用尽限额,其他人可能会窃取您的令牌。
如果您没有服务器端资源来执行此操作,则可能需要查看Flamingo。它将为您执行身份验证和缓存,因此您只需要像以前一样使用JS。