2013-10-11 11 views
6

Tôi đã bashing đầu của tôi về điều này trong nhiều ngày bây giờ cố gắng tìm ra cách này có thể làm. Tôi muốn tải xuống các tệp CSV từ Công cụ quản trị trang web của Google mà tôi đã thực hiện thành công. Tuy nhiên, tôi phải trực tiếp chuyển tên người dùng và mật khẩu của tài khoản mà tôi muốn truy cập. Đối với tất cả các khía cạnh khác của công cụ quản trị trang web, tôi chỉ cần đăng nhập người dùng và tôi trao đổi mã thông báo từ đó đăng nhập bằng mã thông báo phiên có thể sử dụng lại.Truy vấn Java webmaster hàng đầu của Google

Tôi không thể sử dụng phương pháp này khi nói đến việc nhận dữ liệu truy vấn.

String next = "http://xyz.domain.com/auth"; //sets page to goto after user log's in so we can pass the token to application 
String scope = "http://www.google.com/webmasters/tools/feeds"; // sets the scope of the token 
boolean secure = false; 
boolean session = true; 
String urlFromAuthSub = AuthSubUtil.getRequestUrl(next, scope, secure, session); //generates the URL to forward user to loginto google. 

Trên trang chụp của bạn (thông số tiếp theo trong mã ở trên) bạn nhận được mã thông báo sau khi đăng nhập thành công. Sau đó, bạn trao đổi nó cho mã thông báo phiên.

String token = "##########################"; 
String sessionToken = AuthSubUtil.exchangeForSessionToken(token, null); 
//store sessionToken for all future use to interact with webmaster for this user. 

Sau đó, cuối cùng chúng tôi chỉ cần tạo đối tượng WebmasterToolsService của chúng tôi và đặt nó là AuthSubToken để token phiên, và DONE!

WebmasterToolsService myService = new WebmasterToolsService("DemoWebmaster"); 
myService.setAuthSubToken(token); 

Tuy nhiên khi cố tải xuống CSV, tôi không còn cách nào khác ngoài việc sử dụng thông tin đăng nhập đầy đủ của người dùng Google.

String host = "www.google.com"; 
String dl_list_url = "/webmasters/tools/downloads-list?hl=%s&siteUrl=%s"; 
String sites_path = "/webmasters/tools/feeds/sites/"; 
WebmasterToolsService svc = new WebmasterToolsService("DemoQuery Service"); 
svc.setUserCredentials("[email protected]", "123456"); 

Sau đó tôi có thể làm bất kỳ điều gì với API quản trị viên web khi tôi đăng nhập toàn bộ khách hàng. Tuy nhiên, đối với ứng dụng tôi đang xây dựng, tôi không cần lưu trữ thông tin đăng nhập đầy đủ của người dùng Google.

Tôi đã thấy một công ty đã quản lý việc này bằng cách nào đó khi bạn thêm API quản trị viên web của Google. Nhưng tôi không thể nhìn thấy nó như thế nào là có thể. Bất kỳ ý tưởng?

Trả lời

1

Về công ty đó đang thực hiện, họ là ai, họ có đưa ra một số loại công cụ hoặc ứng dụng công cộng nào không? Có lẽ họ chỉ sử dụng một số mẹo không công bằng để giữ dữ liệu của bạn. Bạn có một URL?

Theo như tôi biết (và tôi đã biết một nghiên cứu thêm chỉ trong trường hợp) đó là không thể. cho một số điều:

  1. Như bạn nói, google's example in python sử dụng tên người dùng và mật khẩu.
  2. eyecatchup php-webmaster-tools-downloads library, cũng yêu cầu tên người dùng và mật khẩu.
  3. Nếu bạn truy cập Bảng điều khiển API Google (https://code.google.com/apis/console hoặc https://cloud.google.com/console) API công cụ quản trị trang web không có, do đó, dường như không sử dụng hệ thống cấp phép chung như tất cả các apis khác.

Vì vậy, tôi sợ bạn sẽ không may mắn.

Các vấn đề liên quan