Android studio:使用retrofit2(GET)从Google电子表格中读取数据

时间:2017-06-10 06:02:31

标签: java android google-sheets retrofit

现在我可以使用" Blundell的方法发布数据 Android Developer Tutorials和Blog",但我需要从不同的条目中读取数据。

这是post:

的界面
public interface WebServiceSpreadsheet {

    @POST("1FAIpQLSfKGadkannwHzBhQDhJ9VBidB9oUhX-0mxI6vnyNCzo5G_YSg/formResponse")
    @FormUrlEncoded
    Call<Void> SpreadshettData(
        @Field("entry.1286709617") String ActuatorsApp
    );

}

要发布的Java代码:

public class ActActivity extends AppCompatActivity {

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_act);
        Retrofit retrofit = new Retrofit.Builder().baseUrl(
            "https://docs.google.com/a/acorntechmx.com/forms/d/e/")
            .build();

        final WebServiceSpreadsheet spreadsheetWebService = 
            retrofit.create(WebServiceSpreadsheet.class);


        findViewById(R.id.btnFan1).setOnClickListener(
            new View.OnClickListener() {
                @Override
                public void onClick(View v) {
                    String FanON1 = "Fan ON Hour";

                    Call<Void> SpreadsheetData = 
                        spreadsheetWebService.SpreadshettData(FanON1);
                    SpreadsheetData.enqueue(callCallback);
                }
            }
    );

如何使用GET中的retrofit2方法读取数据?

2 个答案:

答案 0 :(得分:0)

要使用GET retrofit2方法从Google表格API中读取数据,您应该向WebServiceSpreadsheet界面添加一些方法:

返回给定ID的电子表格:

  @GET("/v4/spreadsheets/1FAIpQLSfKGadkannwHzBhQDhJ9VBidB9oUhX-0mxI6vnyNCzo5G_YSg")
  Call<Spreadsheet> get(@Path("spreadsheetId") String spreadsheetId);

之后你可以调用这样的方法:

Call<Spreadsheet> spreadsheet = spreadsheetWebService.get(“1FAIpQLSfKGadkannwHzBhQDhJ9VBidB9oUhX-0mxI6vnyNCzo5G_YSg”);

您可以使用Google Sheets API作为参考

要在Android应用中使用Google表格API,这是一个要检查的候选名单:

  1. Enable Google Sheets API用于您的项目或创建新项目并为其启用API。
  2. Generate Release/Debug keystores用于您的项目并获取SHA1密钥指纹。
  3. 通过将上一步中的包名称和SHA1密钥指纹插入项目,从Google Cloud Platform console获取API_KEY。
  4. 将这些内容添加到您的build.gradle(模块应用):

    实现( 'com.google.apis:谷歌-API服务表:V4-rev525-1.23.0')     {       排除组:'org.apache.httpcomponents'     }

答案 1 :(得分:0)

这是一个适用于只读公开可见工作表的界面:

public interface SheetsApi {

  @GET("/v4/spreadsheets/{spreadsheetId}/values/{range}?majorDimension=ROWS")
  Call<SheetsValuesResponse> getValues(
      @Path("spreadsheetId") String sheetId,
      @Path("range") String range,
      @Query("key") String apiKey);

  @GET("/v4/spreadsheets/{spreadsheetId}")
  Call<GetSheetResponse> getSheets(
      @Path("spreadsheetId") String sheetId, @Query("key") String apiKey);
}