使用 gitskarios/GithubAndroidSdk

Using gitskarios/GithubAndroidSdk

我正在尝试使用 gitskarios/GithubAndroidSdk 为我的 alpha 和 beta 测试人员提供一种查看当前 github 问题和报告新问题的方法。以下是我已经采取的步骤:

  1. LINK 创建一个 GitHub 应用程序。
  2. 将客户端信息添加到我的应用程序的元数据中:
    • com.alorma.github.sdk.client -> 我客户的 ID
    • com.alorma.github.sdk.secret -> 我客户的秘密
    • com.alorma.github.sdk.oauth -> 我客户的 'Authorization callback URL'

运行 我片段的 onCreate 中的这段代码:

GithubDeveloperCredentials.init(new MetaDeveloperCredentialsProvider(mParent));
UserReposClient client = new UserReposClient(getActivity(), null);
client.setOnResultCallback(new BaseClient.OnResultCallback<List<Repo>>() {
    @Override
    public void onResponseOk(List<Repo> repos, Response response) {
        Log.d("GitHub", "onResponseOK: " + response);
    }

    @Override
    public void onFail(RetrofitError retrofitError) {
        Log.d("GitHub", "onFail: " + retrofitError);
    }
});
Log.d("GitHub", "getting repos");
client.execute();

结果是 "getting repos" 的单个日志,没有回调。

我试过删除对 GithubDeveloperCredentials.init() 的调用,但这只会导致崩溃,提示 provider 为空。然后我想也许我没有授权令牌所以我使用 null 作为 RequestTokenClient(Context context, String code) 中的第二个参数调用 RequestTokenClient 但这也永远不会得到回调或 return 如果使用 executeSync().

执行,则为 null 令牌

更新

我尝试使用个人访问令牌(查看评论)页面生成访问令牌,然后将其保存到 StoreCredentials。当 运行 时 execute() 命令现在看起来更进一步了,但现在我收到一个新的错误提示:

retrofit.RetrofitError: LoginService.requestToken: HTTP method annotation is required (e.g., @GET, @POST, etc.).

环顾四周,我找到了一个答案(见评论)说这可能是改装包的一个混淆问题。所以我将这些行添加到我的应用程序的 proguard 文件中,但还没有成功。

有人可以帮助我吗?我想要做的就是获取未解决问题的列表。

好的,所以我终于完成了这项工作,尽管不是我想要的最佳方式。我最初打算我的每个 Alpha 测试人员都需要拥有自己的 GitHub 帐户并被添加到项目中,然后使用他们自己的凭据获取授权令牌并访问错误列表。相反,使用我在更新中生成的身份验证令牌,我能够访问存储库。我不得不将混淆器更改为:

-keepattributes *Annotation*,Signature
-keep class retrofit.** { *; }
-keepclasseswithmembers class * {
@retrofit.http.* <methods>; }

(出于某种原因,*Annotation*Signature 需要在同一行)