【问题标题】:How to upload video on youtube using access token and api in android?如何使用 android 中的访问令牌和 api 在 youtube 上上传视频?
【发布时间】:2015-06-08 10:20:31
【问题描述】:

我构建了网络和移动应用程序,它们是同步的。因此,在我登录并授权 google 帐户获取访问令牌、刷新令牌后,将过期以在 youtube 上上传视频并存储在数据库中。在移动设备上,我获得访问令牌、刷新令牌、我编写的过期 ria api 和移动应用程序使用访问令牌上传视频而无需登录谷歌帐户来获取访问令牌。如果访问令牌过期,我将使用刷新令牌重新生成访问令牌。现在,我已经在 iOS 中完成了,但在 Android 中我仍然无法做到。

【问题讨论】:

  • this 不是您正在搜索的内容吗?
  • @user1916184 你不能做什么?是您无法重新生成访问令牌的问题吗?请提供代码示例和显示您的工作的错误
  • 同样的问题?如果您找到任何解决方案,可以与我分享您的代码吗?

标签: android google-api google-api-java-client android-youtube-api


【解决方案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;
    }
}

【讨论】:

  • 我需要帮助。你为此使用了什么库?我需要令牌,想用这个令牌上传视频到 youtube,请帮我 ismailtsn92@gmail.com
猜你喜欢
  • 2012-12-20
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-09-22
  • 2013-08-04
  • 2015-06-12
  • 2019-03-20
相关资源
最近更新 更多