Costruisco web e app per dispositivi mobili e sono sincronizzati. Quindi, dopo aver effettuato l'accesso e autorizzato l'account Google per ottenere token di accesso, aggiornare il token, scade per caricare video su YouTube e archiviarli nel database. E su mobile, ottengo il token di accesso, il token di aggiornamento, scade ria api che scrivo e l'app per dispositivi mobili utilizza il token di accesso per caricare video senza accedere all'account google per ottenere il token di accesso. Se il token di accesso è scaduto, userò il token di aggiornamento per rigenerare il token di accesso. Ora, ho fatto in iOS, ma in Android non riesco ancora a farlo.Come caricare video su youtube utilizzando token di accesso e API in Android?
6
A
risposta
1
public class UploadService extends AsyncTask<Void,Void,String>
{
String base64_video="";
String tokenValue="";
ProgressDialog uploadDialog = new ProgressDialog(FinalStandardActivity.this);
@Override
protected void onPreExecute() {
super.onPreExecute();
base64_video=convertToBase64(_newVideoPath);
uploadDialog.setMessage("Uploading...");
uploadDialog.setProgressStyle(ProgressDialog.STYLE_SPINNER);
uploadDialog.setCancelable(false);
uploadDialog.show();
}
@Override
protected String doInBackground(Void... params) {
File file=new File(_newVideoPath);
loginPreferences = getSharedPreferences("loginPrefs", MODE_PRIVATE);
tokenValue=loginPreferences.getString("googleToken","");
if(tokenValue.contentEquals(""))
{
}
else
{
JSONObject snippet=new JSONObject();
//VideoSnippet snippet = new VideoSnippet();
VideoStatus status = new VideoStatus();
try
{
snippet.put("categoryId", "22");
snippet.put("description", "Description of uploaded video.");
snippet.put("title", "Test video upload");
status.set("privacyStatus", "private");
}
catch (Exception e)
{
e.printStackTrace();
}
// .addFormDataPart("snippet","snippet",RequestBody.create(MediaType.parse("application/json; charset=utf-8"),snippet.toString()))
OkHttpClient client = new OkHttpClient();
RequestBody formBody = new MultipartBody.Builder()
.setType(MultipartBody.FORM)
.addFormDataPart("snippet","snippet",
RequestBody.create(MediaType.parse("application/json; charset=utf-8"),snippet.toString()))
.addFormDataPart("videoFile", file.getName(),
RequestBody.create(MediaType.parse("video/*"), file))
.build();
// let metadata = "{'snippet':{'title' : 'title', 'description': 'description'}}".data(using: .utf8, allowLossyConversion: false)!
//MediaType.parse("application/json; charset=utf-8")
//UPLOAD_URL=UPLOAD_URL+"?part="+snippet.toString();
Request request = new Request.Builder()
.addHeader("Authorization","Bearer "+tokenValue)
.addHeader("Content-Type", "application/json")
.addHeader("cache-control", "no-cache")
.url(UPLOAD_URL)
.post(formBody)
.build();
client.newCall(request).enqueue(new Callback() {
@Override
public void onFailure(Call call, IOException e)
{
Log.e(TAG, e.toString());
}
@Override
public void onResponse(Call call, Response response) throws IOException
{
Log.e(TAG,response.body().toString());
uploadDialog.dismiss();
}
});
}
return null;
}
}
+0
Ho bisogno di aiuto. Che biblioteca hai usato per questo? Ho bisogno di token e voglio caricare video con questo token su youtube per favore aiutami [email protected] – podgradle
Non è [questo] (https://developers.google.com/youtube/v3/code_samples/java#upload_a_video) esattamente quello che stai cercando? – doubledeath
@ user1916184 Quale parte di questo non puoi fare? Il problema è che non è possibile rigenerare il token di accesso? Si prega di fornire esempi di codice ed errori che mostrano il vostro lavoro – OYRM
stesso problema? se hai trovato qualche soluzione, puoi condividere il tuo codice con me per favore? – podgradle