Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

如果使用豆芽要求必须已安装官方豆瓣 App,但由此不必手动获取 API Key,如何? #26

Closed
zhanghai opened this issue Mar 26, 2016 · 11 comments
Assignees
Milestone

Comments

@zhanghai
Copy link
Owner

这个 Issue 仅仅是希望讨论一个可能性的各种影响。

@ipcjs
Copy link

ipcjs commented Mar 28, 2016

可以实现吗?可以的话就很好呀!最好同时保留一个隐藏的输入key的入口。

@zhanghai
Copy link
Owner Author

@ipcjs

可以实现,也就是与目前官方豆瓣应用逻辑一样,获取大豆瓣应用的签名信息用于 AES 解密特定的字符串。

只是不知道这样做会有怎样的影响,官方还能否默许……

保留原输入入口倒是很简单,作为一个 Fallback 就好了。

@ipcjs
Copy link

ipcjs commented Mar 28, 2016

@DreaminginCodeZH 你这样说的话,是不是指豆瓣3.6版的这段代码?

    private void setupApiKey() {
        try {
            String password = Base64.encodeToString(getPackageManager().getPackageInfo(getPackageName(), 64).signatures[0].toByteArray(), 0);
            this.mApiKey = AES.decrypt("74CwfJd4+7LYgFhXi1cx0IQC35UQqYVFycCE+EVyw1E=", password);
            this.mApiSecret = AES.decrypt("MkFm2XdTnoPKFKXu1gveBQ==", password);
        } catch (NameNotFoundException e) {
            e.printStackTrace();
        }
    }

它这里解密的貌似就是apiKey呀。。。所以结果还是使用官方的apiKey喽?貌似和直接使用豆瓣3.0.1版中的apiKey是一样的呀。。。
我看,你要么直接像BlackLight一样,直接给用户一个输入apiKey的界面好了~~,官方不给api也是没办法的事,反正也不是营利性质的,用户量也不大,应该不会管吧

@zhanghai
Copy link
Owner Author

嗯。另一件事是只有官方豆瓣 App 的 API Key 可以使用用户名密码认证的 XAuth 接口。

确实是一样的,不过如此为之,就没有直接公开他们的 API Key 了,而这段代码本身是随意去网上逆向就能得到的;这也意味着豆芽本身没有包含使用他们 API 足够的信息;同时要求安装官方 App,也就是说豆芽的用户也一定是官方 App 的用户,对他们来说影响就更小了。

但毕竟是逆向的代码,不知道他们会不会不高兴。所以发了这个 help-wanted 的 Issue。

@zhanghai
Copy link
Owner Author

方法二是另外提供一个独立的小 App,可以得到 API Key 并放到相应位置里;但这样毕竟不如方法一简单直接。

@ipcjs
Copy link

ipcjs commented Mar 28, 2016

为了尽量不得罪官方,不直接给apiKey,这样也好~~

@zhanghai
Copy link
Owner Author

@ipcjs 你觉得方法一风险怎样?

@ipcjs
Copy link

ipcjs commented Mar 29, 2016

@DreaminginCodeZH 就这样干呗,也没其他办法~

@zhanghai
Copy link
Owner Author

@ipcjs 还有方法二呀,这样就和豆芽项目本身可以分离了,以后上架 Play 也没什么问题;只不过方法一更用户友好些所以在纠结

@ipcjs
Copy link

ipcjs commented Mar 30, 2016

@DreaminginCodeZH 方法二太麻烦了,我觉得还是方法一或者BlackLight那样好点。三种方式本质上都是盗用豆瓣的官方apiKey,没必要纠结那么多~~

@zhanghai
Copy link
Owner Author

Closed by repo DreaminginCodeZH/DouyaApiKey.

@zhanghai zhanghai added this to the 1.0.0-alpha.2 milestone Jul 25, 2016
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

2 participants