Czy jesteś absolutnie pewien, że chcesz używać 2-czynnikowego auth w skryptach powłoki? Jeśli tak, nie musisz starać się, aby twój komputer lub skrypt był "zaufany". Po uruchomieniu skryptu wystarczy wykonać pełne 2-czynnikowe uwierzytelnienie.
Jeśli celem jest pominięcie ręcznego auth drugiego czynnika, sugeruję użycie hasła specyficznego dla aplikacji (jak już sugerowały inne odpowiedzi). Po prostu udawaj, że nie używasz 2-czynnikowego auth w ogóle i używaj prawdziwej nazwy logowania, ale ustaw hasło do tego wygenerowanego pod numerem https://accounts.google.com/b/0/IssuedAuthSubTokens?hl=en (podstrona od https://www.google.com/settings/security).
Celem jest ustawienie hasła specyficznego dla aplikacji "Nazwa" na wartość, która ma dla Ciebie znaczenie. Na przykład mam hasła oznaczone jako "Pidgin w pracy", "Mój telefon z Androidem", "Rozszerzenie książki adresowej Google Thunderbird w pracy" itp. Możesz mieć hasło "Skrypt eksportu kalendarza i czytnika". Jeśli kiedykolwiek uwierzysz, że to hasło specyficzne dla aplikacji jest zagrożone ("wyciekło"), po prostu kliknij link "Odwołaj" na tej samej stronie, a następnie wygeneruj nowe hasło do skryptu.
Dla kodu wystarczy użyć ostatniej wersji, która działała z auth Auth. Aktualizacja:, ponieważ pierwotne pytanie użyte w adresie URL https://accounts.google.com/ServiceLogin
do inicjowania logowania do sesji jest praktycznie sfałszowanym loginem do przeglądarki. Jednak Google oficjalnie nie wspiera tego i kiedy to piszę, wydaje się, że użycie hasła specyficznego dla aplikacji do normalnego logowania zakończy się komunikatem o błędzie "Użyj hasła do konta zamiast hasła specyficznego dla aplikacji".
Jedną z rzeczy, które należy zrozumieć w przypadku 2-czynnikowego uwierzytelnienia Google i "zaufanego komputera", jest to, że rzeczywista implementacja dodaje do przeglądarki stały plik cookie z 30-dniowym okresem wygaśnięcia. Zaufany komputer nie oznacza, że twój adres IP był zaufany lub zostało utworzone inne magiczne połączenie. Jeśli twoje skrypty nie przechwycą pliku cookie "zaufanego komputera" z wybranej przeglądarki, nie ma znaczenia, czy kiedykolwiek oznaczałeś komputer jako zaufany.(Formularz Google nie powinien zawierać słów "Zapamiętaj ten komputer przez 30 dni", ale "Zaufaj tej kombinacji przeglądarki i konta użytkownika przez 30 dni (zachowaj stały plik cookie)". Sądzę jednak, że uznano to za zbyt techniczne ...)
Aktualizacja: (skopiowano z mojego komentarza poniżej) Jedynie oficjalnie obsługiwana metoda (aplikacje Server to Server) jest udokumentowana pod numerem https://developers.google.com/accounts/docs/OAuth2ServiceAccount. Wymaga kodowania żądania OAuth/JWT i używania klucza prywatnego konta usługi utworzonego pod numerem https://code.google.com/apis/console. Alternatywnie można użyć uwierzytelniania ClientLogin (już uznanego za nieaktualny i do 2015 roku).
Jeśli zdecydujesz się pójść z OAuth, warto spojrzeć na http://blog.yjl.im/2010/05/bash-oauth.html i https://github.com/oxys-net/curl-oauth
należy spróbować użyć OAuth2 zamiast tego starego przestarzałej podejście, to nie ma mniej kłopotów z tokenów weryfikacji. – Tim
@Tim: Czy istnieje przewodnik, jak z niego korzystać ze skryptami powłoki? – l0b0
Specyfikacja na http://tools.ietf.org/html/draft-ietf-oauth-v2-25 pokazuje, jak to zrobić. Myślę, że 'curl' może być w stanie zrobić coś z https i pozwolić ci przekazywać żądania z' --raw'? A może curl ma opcje dopasowania tego typu rzeczy? – ams