2017-02-23 25 views
0

Googleスプレッドシートからデータを読み取るAndroidアプリを作成しています&は、同じスプレッドシートで行を更新/作成するためにユーザー入力から新しい値を受け取ります。私は成功したJSONオブジェクトを受け取るGETメソッドを使用して、スプレッドシートからのデータにアクセスし、次のコードを使用して、必要なデータを取ることができ、同じアプリ内で実際にGoogleシートエラー401、スプレッドシートにデータを追加/編集できません

、:

String requestUrl = https://sheets.googleapis.com/v4/spreadsheets/{spreadsheetId}/values/A1:F200?key={myAPIkey} 
URL url = createUrl(requestUrl); 
HttpsURLConnection urlConnection = (HttpsURLConnection) url.openConnection(); 
try { urlConnection.setReadTimeout(10000); 
urlConnection.setConnectTimeout(15000); 
urlConnection.setRequestMethod("GET"); 
urlConnection.connect(); } finally { 
      urlConnection.disconnect(); 
     } 

しかし、私の問題私は「POST」メソッドを使用して、同じスプレッドシートにユーザデータを記述しようとしていますとエラー401を取得し、私は接続するには、次のコードを使用しています:私はどのようにすることができますエラー401 &を取得する理由

String requestUrl = https://sheets.googleapis.com/v4/spreadsheets/{spreadsheetId}/values/A5:F5:append?valueInputOption=USER_ENTERED&key={myAPIkey} 

URL url = createUrl(requestUrl); 

HttpsURLConnection urlConnection = (HttpsURLConnection) url.openConnection(); 
     try { 
      urlConnection.setDoOutput(true); 
      urlConnection.setRequestMethod("POST"); 
      urlConnection.setChunkedStreamingMode(0); 

      OutputStream outputStream = new BufferedOutputStream(urlConnection.getOutputStream()); 

      OutputStreamWriter out = new OutputStreamWriter(urlConnection.getOutputStream()); 
      out.write(object); 
      out.flush(); 
      out.close(); 
} finally { 
      urlConnection.disconnect(); 
     } 

あなたは私を助けてもらえ私はデータをgooに追加しますスプレッドシートはどうですか?

私は自分のスプレッドシートのプライバシーを公共に設定しました&誰もがリンクで編集できますが、同じエラーが発生します。

+0

401応答の内容全体を貼り付けることはできますか? –

答えて

0

私は、あなたが認証をパスしていないことが問題だと思います。 A 401は「UNAUTHORIZED」応答です。スプレッドシートが公開されている場合は、読取りを承認せずに停止できますが、スプレッドシートが公開されていてもAPIからの書込みには承認が必要です。

Sheets API client librariesを使用することを検討してください。これにより、作業が簡単になり、認証が簡単になります。

関連する問題