Я сталкиваюсь с проблемой аутентификации в API YouTube. чтобы получить ссылку на данные CSV файл данных. Вот мой код.
package sample.youtube;
import java.io.IOException;
import java.net.MalformedURLException;
import java.net.URL;
import com.google.gdata.client.Query;
import com.google.gdata.client.youtube.YouTubeService;
import com.google.gdata.data.youtube.VideoFeed;
import com.google.gdata.util.ServiceException;
public class CSV_Download {
public static final String UPLOADS_URL = "http://gdata.youtube.com/feeds/api/users/default/uploads";
public static void main(String[] args) {
YouTubeService service = new YouTubeService("insight api", "dev key");
Query query = null;
try {
query = new Query(new URL(UPLOADS_URL));
} catch (MalformedURLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
query.setFields("title,entry(title, media:group/media:player)");
VideoFeed videoFeed = null;
try {
videoFeed = service.query(query, VideoFeed.class);
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (ServiceException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
System.out.println(videoFeed.getTitle() + ":");
System.out.println(" Link : "+videoFeed.getLink("http://gdata.youtube.com/schemas/2007#insight.views", "text/html") + ":");
}
}
Мое сообщение об ошибке:
com.google.gdata.util.AuthenticationException: аутентификация пользователя
требуется. Требуется аутентификация пользователя.
Пользователь
требуется аутентификация.
Ошибка 401
в
com.google.gdata.client.http.HttpGDataRequest.handleErrorResponse (HttpGDataRequest.java:600)
в
com.google.gdata.client.http.GoogleGDataRequest.handleErrorResponse (GoogleGDataRequest.java:563)
в
com.google.gdata.client.http.HttpGDataRequest.checkResponse (HttpGDataRequest.java:552)
в
com.google.gdata.client.http.HttpGDataRequest.execute (HttpGDataRequest.java:530)
в
com.google.gdata.client.http.GoogleGDataRequest.execute (GoogleGDataRequest.java:535)
на com.google.gdata.client.Service.getFeed (Service.java:1135) на
com.google.gdata.client.Service.getFeed (Service.java:1077) в
com.google.gdata.client.GoogleService.getFeed (GoogleService.java:662)
на com.google.gdata.client.Service.query (Service.java:1237) на
com.google.gdata.client.Service.query (Service.java:1178) в
sample.youtube.CSV_Download.main (CSV_Download.java:30) Исключение в
поток "основной" java.lang.NullPointerException в
sample.youtube.CSV_Download.main (CSV_Download.java:38)
Итак, я вставил строку (приведенную ниже) в код сразу после объявления клиента YouTubeService:
service.setUserCredentials("email_here", "password_here");
Теперь ошибка аутентификации устранена, и код выполняется успешно. Но я получаю Null как ссылку. Я не получил никакого ответа от форума разработчиков YouTube. Что может быть не так?