使用 gitskarios/GithubAndroidSdk
Using gitskarios/GithubAndroidSdk
我正在尝试使用 gitskarios/GithubAndroidSdk 为我的 alpha 和 beta 测试人员提供一种查看当前 github 问题和报告新问题的方法。以下是我已经采取的步骤:
- 在 LINK 创建一个 GitHub 应用程序。
- 将客户端信息添加到我的应用程序的元数据中:
- 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
需要在同一行)
我正在尝试使用 gitskarios/GithubAndroidSdk 为我的 alpha 和 beta 测试人员提供一种查看当前 github 问题和报告新问题的方法。以下是我已经采取的步骤:
- 在 LINK 创建一个 GitHub 应用程序。
- 将客户端信息添加到我的应用程序的元数据中:
- 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
需要在同一行)