【问题标题】:How could Twitter know the source of TWRequest?Twitter 怎么会知道 TWRequest 的来源?
【发布时间】:2012-09-18 19:13:39
【问题描述】:

我只是好奇。 TWRequests 使用通用的ACAccounts,由 iOS 上的所有应用程序共享。应用不指定自己的consumer_keys。那么 Twitter 怎么知道一个特定的 TWRequest 来自哪个应用呢?

【问题讨论】:

    标签: ios twitter twrequest


    【解决方案1】:

    Twitter 无法判断特定 TWRequest 来自哪个应用程序。

    Accounts.framework 嵌入 consumer_keyconsumer_secret

    对于 Twitter,所有请求似乎都来自 iOS Twitter 集成。

    【讨论】:

    • 我相信他们知道。否则所有使用TWRequest 的应用程序将显示为iOS。此外,WWDC 2011 第 124 届会议也证实了这一点。从 36:25 开始观看。
    • 有趣。确切的引用是:“作为此签名过程的一部分,我们实际上嵌入了有关您的过程的足够信息,以便 Twitter 可以正确识别您的应用程序并将来自您的推文归入 Twitter 网站,这样您就不会丢失该标识。”他在说什么信息?用户代理什么的?我仍然认为所有 TWRequest 都使用相同的消费者令牌。
    • 这正是激发我好奇心的原因:)
    • 我没有使用 iOS TWRequest 进行测试,但就 OS X 而言,Twitter 服务类型的 SLRequest 在 Twitter 端显示为“OS X”。查看我的 Playground Twitter OAuth 项目github.com/nst/STTwitter
    • 好吧,事实证明所有使用TWRequest 的应用在 Twitter 时间线中确实返回为来自iOS。也许神秘的应用程序标识符与私有方法-[SLTwitterRequest setApplicationID:]有关(请参阅github.com/nst/iOS-Runtime-Headers/blob/master/Frameworks/…的标题)
    【解决方案2】:

    查询参数 adc=phone 和 application_id=your_iosapp_sig(我认为)在 OAuth 过程中添加到每个请求 url。 Twitter 应该能够通过 application_id 识别您的应用

    一旦你构建了你的 TWRequest,你就可以看到 url 请求了

    NSLog(@"%@", request.signedURLRequest.URL.absoluteString);
    

    这应该会显示上述两个参数。

    【讨论】:

    猜你喜欢
    • 2011-12-04
    • 2015-06-20
    • 2022-10-12
    • 1970-01-01
    • 2021-10-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多