Google+ a Opera – workaround

Čvc
02
2011

Edit 21.7.2011: V současné době existuje elegantnější a korektnější řešení od uživatele XP1 z MyOpera.com, popsané v příspěvku Google+ Injector pro Operu

There is now a more elegant and more correct solution available thanks to XP1 from MyOpera.com as mentioned either in the comments of this post, at MyOpera.com or in the next post (Czech only, for now, sorry about that – English version of the post coming ASAP) here.

Edit 8.7.2011: There was some demand for the English version of this guide, so I’ve decided to write one up. You can check it out here in the English part of my blog. You can also follow the thread at My Opera.

Patrně málokdo nezaregistroval raketový start nové sociální sítě Google+. Uživatelé Opery ovšem jako obvykle zaregistrovali ještě další věc – horní notifikační lišta v Opeře jaksi…nenotifikuje. Čímž vzniká s rozumným používáním Google+ v Opeře dost zásadní problém, protože prostě nemáte nejmenší přehled o tom, kde přibyl jaký komentář či co se jiného kde stalo. Jedinými možnostmi je používat jiný, tzn. horší browser, být odkázáni na notifikace přes mail nebo (pokud máte) používat notifikace přes Android zařízení (ale to je ve spojení s desktopovým používáním G+ velmi nešikovné, jakkoliv je jinak androidí G+ aplikace velice hezká). Naštěstí se zdá, že to lze alespoň improvizovaně obejít.

Jak se zdá (a jak jistě nikoho nepřekvapí), problém je jako obvykle primárně v browser sniffingu (nebo v něčem, co s ním dost těsně souvisí). Opera prostě podle všeho dostává jiný kód, než by dostat měla. Prvním náznakem toho bylo pro uživatele Opery už naprosto rutinní vyzkoušení voleb „Mask as Firefox“ a „Mask as Internet Explorer“. Po jejich použití (zopakujme ještě jednou, že tyhle volby nedělají nic jiného, než že serveru zabrání zjistit, že používáte Operu, a místo toho se váš browser pro server tváří jako Firefox nebo IE) se notifikace a další funkce horní lišty objevily. Mělo to ovšem několik háčků – jednak notifikace nešlo rozkliknout (místo bubliny se seznamem se objevil nápis, že G+ nezná vaši konfiguraci browseru a že si máte nainstalovat nějaký modernější), a jednak vznikly problémy s políčky, do kterých zadáváte statusy, komentáře a podobné věci. Při maskování za Firefox do nich vůbec nešel umístit kurzor, při maskování za IE sice šel a mohli jste normálně psát, ale pro změnu nefungovalo odesílací tlačítko.

Když jsem přemýšlel nad tím, co by to mohlo způsobovat, napadla mě velice prostá věc – G+ v případě Firefoxu či IE browseru velice pravděpodobně odesílá kód, který je nějak specificky upravený pro daný browser, a ten poté v Opeře logicky příliš dobře nefunguje. Co tedy zkusit ještě třetí variantu – přesvědčit G+ o tom, že používám Chrome? Nebylo tedy nic snazšího než Opeře zkusit změnit user agent do podoby, jak vypadá u Chrome – což mimochodem znamená, že v něm jsou nacpané identifikační řetězce všech majoritních browserů (kromě Opery), Google se s tím zkrátka příliš nemaže. A ono to kupodivu zabralo – alespoň při letmém testování vše fungovalo zcela korektně, včetně notifikací. Poté zbývalo jen zjistit, co přesně za tohle zprovoznění z onoho dlouhého user agent řetězce může. A po několika testech metodou pokus omyl bylo jasno – může za to identifikace pro Safari (takže kupodivu nikoliv ta pro Chrome samotný – proč tomu tak je, to bohužel netuším).

Pokud tedy někdo chce tenhle workaround vyzkoušet, může postupovat následovně:

Do adresního řádku místo standardní adresy napište opera:config. Objeví se Preferences Editor. Nahoře do políčka „Quick find“ zadejte „id“. Vyfiltruje se vám několik položek v různých oddílech konfiguračního souboru. Nás zajímá položka id v sekci ISP, kterou je třeba změnit. Alternativně se na ni můžete dostat pouhým kliknutím na následující odkaz:

opera:config#ISP|Id

(Případně uvedený text vypište ručně do adresního řádku.)

Tento řetězec je ve výchozím stavu prázdný. Vy do něj teď vepište „AppleWebKit/535.1“ (bez uvozovek, i když ty by tuším neměly mít na funkčnost stejně žádný vliv) nebo alternativně „Safari/535.1“ (každá z alternativ způsobuje řešitelné problémy na jiných stránkách, jen každá na jiných). Poté klikněte na tlačítko Save hned vedle tohoto políčka. Tím změnu uložíte. Teď už stačí jen Operu restartovat a pokud u vás vše funguje stejně jako u mě, můžete si užívat plně funkčního Google+. Není třeba nastavovat žádnou další volbu „Mask as“ nebo „Identify as“, vše funguje s výchozím „Identify as Opera“ (naopak doporučuji pro G+ maskování vrátit na uvedenou výchozí hodnotu, jinak se mohou vaše výsledky od mých zásadně lišit).

Několik dodatečných důležitých poznámek:

1. Tímto postupem upravíte identifikační řetězec Opery pro všechny stránky. Nejsem si jistý, zda to některé nemůže nějak negativně ovlivnit – dle mého (nepříliš zasvěceného) názoru alespoň teoreticky může. Lepší řešení by pochopitelně bylo nějak zařídit, aby se tahle změna projevovala pouze na plus.google.com, respektive v doméně google.com (protože horní lišta je teď unifikovaná zřejmě ve všech produktech Google). Takřka jistě by to šlo zařídit např. nějakým uživatelským skriptem. Já se tím v tuhle chvíli zabývat nehodlám, protože psát skripty víceméně neumím, tohle mi beztak v zásadě stačí (G+ stejně spíše jen testuji, naostro ho používat nemůžu, dokud nezačnou podporovat Google Apps účty) a očekávám, že Opera jako vždy pružně zareaguje a minimálně podobný, ne-li lepší workaround urychleně zařadí do svého opravného souboru browser.js, čímž tohle celé pozbyde platnosti a bude tak k dispozici „čistší“ a systémovější řešení (v uspokojivě rychlé vyřešení problému na straně Google opravdu nedoufám). Až bude k dispozici řešení lepší, uvedu ho tu.

2. Neručím za to, že touhle úpravou nevzniknou na Google+ nějaké jiné problémy. Zkoušel jsem, co mě napadlo vyzkoušet a zdálo se, že to funguje normálně (navíc G+ je zatím ve stádiu, kdy není jisté, zda problém vznikl na vaší straně nebo na straně Google), ale samozřejmě to ani náhodou nemusí znamenat, že opravdu vše funguje korektně. Tzn. workaround používáte na vlastní riziko. Pokud váš browser po jeho aplikaci rozpoutá třetí světovou válku nebo vám sní babičku, nechoďte s tím za mnou ;)

3. Celý text se týká aktuální, před pár dny vydané Opery 11.5 final. Jak se tahle úprava chová ve starších verzích skutečně netuším a zkoušet to nebudu, omlouvám se. Pokud to vyzkoušíte, můžete se o zkušenosti podělit třeba v komentářích.

4. Pokud narazíte na jakékoliv problémy a chcete se výše uvedeného „workaround“ zase zbavit, je to pochopitelně velice prosté – zkrátka vymažte text „AppelWebKit/535.1“ nebo „Safari/535.1“ z řetězce id (=nechte ho opět prázdný), popř. klikněte na tlačítko Default u této položky, uložte změny a restartujte Operu. Vše je zpátky tak, jako to bylo.

15 lidem se článek líbí.

Napsal(a) dne 2. 7. 2011 v 01:24
Kategorie: HW, SW a podobná verbež,Návody,Tipy

19 komentářů »

  • Case napsal:

    Tak jeden vedlejší efekt – YouTube mi teď vyhazuje upozornění, že nepoužívám moderní browser. Ale jinak samozřejmě všechno dál funguje a to upozornění se dá buď zavřít (ovšem pokaždé), nebo se ho dá zbavit tak, že prostě na stránkách youtube.com nastavím „Identify as Firefox“.

  • Twiguard napsal:

    jsou to parchanti

  • Trofo napsal:

    Case: Všimla jsem si dalšího vedlejšího efektu. Tyhlety ikonky OS a browseru u komentářů teď tvrdí, že používáš Safari ;)

  • Case napsal:

    Apage Satanas…tak s tím se fakt bude muset něco dělat. Hláška na YouTube by mi nevadila, ale tohle…

  • Case napsal:

    Alternativa – zdá se, že místo toho Safari/535.1 je tam možné zadat taky AppleWebKit/535.1 a pak mě to alespoň tady detekuje jako uživatele Opery ;) Nic lepšího jsem za skoro celý den zkoušení nevymyslel… A zmizí i problém s YouTube. Na druhou stranu se objeví problém jinde (Okoun, je potřeba se tam pak identifikovat jako FF).

  • […] seems there’s some demand for the English version of my Czech post about Google+ Opera workaround, so I’ve decided to write this up in English as well. You can also follow this thread at My […]

  • Martin napsal:

    Díky moc, nevěděl jsem čím to je, dokonce jsem psal na google co s tím :-)

  • Case napsal:

    Psát na Google s problémy v Opeře je víceméně zbytečné – teď co Operu oficiálně vyřadili ze seznamu podporovaných browserů, nebudou se tím zabývat už vůbec. Tedy nemá to jiný smysl než ten, že aspoň budou vědět, že pořád lidi Operu mají a chtějí používat. Jiný výsledek to těžko bude mít. Bohužel :(

  • XP1 napsal:

    My User JS here / Moje uživatelské JS zde:
    http://my.opera.com/community/forums/findpost.pl?id=9922772

    Update your blog post. ;)
    Aktualizujte svůj blog post. ;)

  • Elischka napsal:

    XP1: Zkusila jsem skript na G+ i +1 extension a spokojenost. Díky moc.

  • Case napsal:

    Elischka: XP1 je cizinec (Španěl?) a ten post je evidentně překládaný přes Google translate nebo něco podobného.

    XP1: Don’t worry, I was going to :) But I’m rather busy right now and I also wanted to test it more thoroughly to be sure that there are no unintended sideffects. I’ll update the post (or, more likely, write a new post and link to it) as soon as possible.

  • Elischka napsal:

    OK then. XP1, I’ve tried both +1 extension and script for G+ and they work fine. Thank you very much.

    Case: Díky za vysvětlení, z nějakého důvodu jsem myslela, že je to z češtiny přeložené do angličtiny, opačná varianta mě nenapadla. Ale zajímavé je, že Ti jakožto překladateli nepřišlo na mysl to místo vysvětlování přeložit. ;)

  • Case napsal:

    Mně to vůbec zajímavé nepřijde. Jednak počítám, že si to je schopen přeložit aspoň tím překladačem sám, když to byl schopen udělat obráceně, a jednak vím, že ty jsi schopná to napsat sama, pokud budeš chtít. Tak proč bych se do toho jakkoliv vkládal?

  • geniv napsal:

    A nebylo by jednodušší používat rovnou Google Chrome než uživatelsky přepisovat user agenta na nějakou verzi safari/chrome

  • Case napsal:

    Páni, tak ono to celou dobu šlo vyřešit až TAKHLE snadno, pozoruhodné…proč to jenom doteď nikoho nenapadlo?

  • Trofo napsal:

    Já myslím, že by bylo lepší rovnou používat Facebook než nějaké G+…

  • XP1 napsal:

    > Elischka: XP1 je cizinec (Španěl?) a ten post je evidentně překládaný přes Google translate nebo něco podobného.

    I’m American. English is my main language.

    I know only elementary-level Spanish. For Spanish, I used Google Translate to translate and then read and corrected the text to make sure it sounds okay. I may have missed some errors, however.

    I also posted in the Italian and Russian subforums. I don’t know Italian or Russian (or Czech), so I will have to rely on the translator 100%.

    Spanish threads / španělské zprávy:
    http://my.opera.com/community/forums/topic.dml?id=1052932
    http://my.opera.com/community/forums/topic.dml?id=1037112

    Italian thread / italský zpráva:
    http://my.opera.com/community/forums/topic.dml?id=1046852

    Russian thread / ruské zpráva:
    http://my.opera.com/community/forums/topic.dml?id=1047502

    |

    Jsem Američan. Angličtina je můj hlavní jazyk.

    Vím, že jen základní úroveň španělštiny. Pro španělské, jsem Google Translate překládat a číst a opravil text, aby se ujistil, že to zní dobře. Možná jsem vynechal nějaké chyby, nicméně.

    Také jsem publikoval v italské a ruské Subfóra. Nevím, italský nebo ruský (nebo česky), takže se budu muset spoléhat na překladatele 100%.

    > A nebylo by jednodušší používat rovnou Google Chrome než uživatelsky přepisovat user agenta na nějakou verzi safari/chrome

    Spoofing may create more problems than you can foresee. More work to debug and fix? Maybe.

    Spoofing the user agent may or may not work. To be sure, you have to disable the browser-checking functions. For example, even though you are using Firefox user agent, Google+ still detects that you are using an unsupported browser (if you click on the notifications or share button). Likewise, if you spoof as Chrome, Google may add more browser checking in the future so that the spoof will fail — just spoofing the user agent is not enough.

    Even more, problems like Chrome- or Firefox-specific code will not work in Opera. I have actually encountered this with the Firefox user agent and mentioned it in the Russian thread:
    „[…] these „a.execCommand(…)“ calls will not work in Opera, and the textbox will fail to resize, unless the native getter calls have been handled correctly.“

    This is just an overview. To track down these problems, it even gets uglier when you are dealing with minified and re-minified code, different for all languages, that changes every Google+ update.

    |

    Spoofing může způsobit více problémů, než je možné předvídat. Více práce k ladění a opravit? Možná.

    Spoofing User Agent může, ale nemusí fungovat. Aby bylo jasno, musíte vypnout prohlížeč kontroly funkce. Například, i když používáte Firefox User Agent, Google + přesto zjistí, že používáte nepodporovaný prohlížeč (pokud kliknete na oznámení nebo Share). Stejně tak, pokud spoof jako Chrome, Google může přidat další prohlížeč kontrolu v budoucnu tak, aby spoof selže – jen spoofing User Agent nestačí.

    Ba co víc, problémy jako Chrome nebo Firefox specifický kód nebude fungovat v Opeře. Jsem se vlastně setkal s tímto zástupcem uživatele Firefoxu a zmínil, že v Ruské tématu:
    „[…] Těchto „a.execCommand (…)“ volání nebude fungovat v Opeře, a textové pole nebude možné měnit velikost, pokud původní kariérista hovory byly správně zachází.“

    Toto je pouze přehled. Vystopovat tyto problémy, dokonce dostane ošklivější, když máte co do činění s minified a re-minified kód, jiný pro všechny jazyky, které se mění každou Google + aktualizace.

  • Case napsal:

    XP1: Saw your posts in the Spanish forums and thought Spanish might be your native language. Guess I was wrong ;)

    Also, sorry that your comments don’t show up right when you post them, but they keep on being diagnosed as a possible spam (due to multiple reasons) and held up for my approval before posting.

    The Czech translation is…well, I guess it’s decipherable, more or less. It’s not that great due to many differences between Czech and English and parts of it don’t make any sense at all – sometimes it’s quite bizzare, ie. „unless the native getter calls have been handled correctly“ translates roughly to something like „if the original careerist phone calls were correctly are dealing with“ ;) But I think it’s possible to get the gist of it. Still, I’ll post the correct translation at the end of this comment, just to be sure.

    I guess most people using this user agent workaround do understand the caveats of what is going on and what (and why) could go wrong (or at least I hope they do). Perhaps I should’ve been calling it „hack“ more than „workaround“, just to be clearer on the issues. And of course it would be best if Google just dropped the sniffing altogether or made G+ work in Opera, but I guess now that they have officialy said they don’t support Opera, it won’t happen…:(

    I’d love to add some post regarding your script on both of my blogs as a continuation of this post we’re commenting on, but right now, there’s sadly quite a big possibility this blog might (temporarily, if I can have a say about it) cease to exist any day now, so I’m pretty much waiting how it all turns out before posting anything new…

    Oh, and BTW, I!m not sure how did you understand geniv’s comment, but the real meaning was „And wouldn’t it be easier to simply use Google Chrome and be done with it instead of messing with user agents?“, so I’m not sure if it really was worth responding to…

    ————————————

    Anyway, the translation…

    Překlad té podstatné části výše uvedeného komentáře od XP1:

    Maskování za jiný browser pomocí user agentu může způsobit více problémů, než lze očekávat. Další opravy a ladění? Možná.

    Maskování může, ale nemusí fungovat. Aby byla jistota, že fungovat bude, musíte vyřadit z provozu funkce na detekci browserů. Například pokud používáte user agent Firefoxu, G+ stejně detekuje, že používáte nepodporovaný browser (pokud kliknete na notifikace nebo na tlačítko sdílení). Stejně tak v případě, že se vydáváte za Chrome, může Google v budoucnosti přidat další testy browseru, takže maskování selže – pouhá změna user agentu zkrátka nestačí.

    A co víc, části kódu, které jsou specifické pro Chrome nebo Firefox nebudou v Opeře fungovat. Na tohle jsem sám narazil v případě user agentu Firefoxu a zmiňoval jsem to v ruském vlákně: „…tahle volání „a.execCommand(…) v Opeře nefungují a některá textová pole pak nemohou přizpůsobit svou velikost, pokud nejsou tato nativní volání správně ošetřena.“

    To je jenom stručný přehled. Pokud se tyhle problémy pokoušíte hledat, celé se to ještě výrazně stupňuje, jakmile pracujete s minified a re-minified kódem, který se liší pro každou jazykovou verzi a to vše se mění s každým updatem Google+.

  • XP1 napsal:

    > this blog might (temporarily, if I can have a say about it) cease to exist any day now

    Oh, that’s too bad. If that were to happen, you should backup everything. Maybe keep the archive alive and use a free blog host?

    Oh, to je velká škoda. Kdyby se tak stalo, měli byste zálohovat vše. Možná, že udržet při životě a používat archív blog host?

    > Oh, and BTW, I!m not sure how did you understand geniv’s comment, but the real meaning was „And wouldn’t it be easier to simply use Google Chrome and be done with it instead of messing with user agents?“

    I thought geniv said that it was easier to use a Google Chrome user agent in Opera. Doh, Google Translate! ;)

    Myslel jsem, že geniv řekl, že to bylo snadnější k použití Google Chrome user agent v Opeře. Doh, Google Translate! ;)

    > parts of it don’t make any sense at all

    Indeed.
    Opravdu.

RSS komentářů k tomuto příspěvku. Zpětné URL


Napište komentář

Používá systém WordPress | Styl: Aeros 2.0 z TheBuckmaker.com