Моето приложение взаимодейства с Google само с Javascript. Той иска достъп до потребителски профил, достъп до имейл и разрешения за управление на контакти. При зареждане на страница приложението проверява дали потребителят вече е предоставил тези разрешения и получава токен за достъп, ако е дал.
Ето примерен код:
var GoogleContacts = {
...
checkAuth: function(){
gapi.auth.authorize({
client_id: googleKeys.clientId,
scope: googleKeys.scopes,
immediate: true
},
jQuery.proxy(this.handleAuthResult, this)
);
},
askAuth: function(){
gapi.auth.authorize({
client_id: googleKeys.clientId,
scope: googleKeys.scopes,
immediate: false
},
jQuery.proxy(this.handleAuthResult, this)
);
}
...
}
....
function handleGoogleApiLoad(){
gapi.client.setApiKey(googleKeys.apiKey);
gapi.auth.init(function(){console.info('popup api ready')});
setTimeout(function(){GoogleContacts.checkAuth();}, 300);
}
....
$('#emailButton').click(function() {
if(!accessToken)
GoogleContacts.askAuth();
...
});
Сега, ако потребител дойде за първи път, той се пита за правилните разрешения, когато натисне бутона „Изпращане на имейл“. Когато потребителят презареди страница, безпроблемната проверка на разрешенията връща грешка и когато потребителят натисне бутона „изпрати имейл“, отваряме отново изскачащия прозорец за упълномощаване на Google и сега той иска разрешение за офлайн достъп.
Това изглежда неправилно, тъй като JS api няма реална употреба за офлайн достъп.
Изглежда, че този проблем е започнал, след като Google пусна функцията за постепенно удостоверяване: http://googleplusplatform.blogspot.co.il/2013/12/google-sign-in-improvements11.html
Това грешка ли е, която скоро ще бъде коригирана , или трябва да променим кода по някакъв начин, за да не объркваме потребителите си със странни искания за разрешение?
Актуализация:
Опитах се да използвам plus api и метода gapi.auth.signIn()
, но със същия резултат. Очевидно този проблем зависи от обхвата, тъй като когато използвам само обхвата за влизане, всичко работи според очакванията, но добавянето на обхвата на достъп до Google Контакти https:||www.google.com/m8/feeds/ винаги води до офлайн достъп заявка при влизане в страницата втори път. Ето цигулка, за да потвърдите това: http://jsfiddle.net/hjLM6/6/ Това трябва е бъг и наистина бих искал Google скоро да се справи с него, тъй като плаши потребителите.
Всъщност DirectX може да улови не само прозореца, рисуван от d3d, но и целия екран по този начин: http://imgur.com/FojhNwA
Току що завърших тази програма вчера :P
На моя компютър използването на gdi+ (Bitblt) струва около 60 ms, за да се направи 1080p екранна снимка, но само 9 ms, за да се направи екранна снимка и да се изобрази рамка от DirectX (IDXGIOutputDuplication).
Това е най-бързият начин, който бях пробвал, но за съжаление изглежда, че работи само на Windows 8 (не мога да стартирам тази програма на моята машина с Windows 7).
Можете да проверите информацията от тук: https://msdn.microsoft.com/en-us/library/windows/desktop/hh404487
И в тази статия има примерен код.
- person Constantine Poltyrev   schedule 29.12.2013