Faits: A. Par décision du 27 juin 2006, l'Office cantonal de l'assurance-invalidité du canton de Genève a alloué un quart de rente d'invalidité à G._ à compter du 1er août 2002. Le 16 juillet 2008, l'office AI a admis partiellement l'opposition de l'assurée et l'a mise au bénéfice d'une rente entière depuis le 1er avril 2008. B. Représentée par ASSUAS (H._), l'assurée a déféré cette décision au Tribunal cantonal des assurances sociales de la République et canton de Genève en concluant au versement d'une demi-rente à partir du 1er août 2002. Le cachet postal apposé sur l'enveloppe du recours porte la date du 16 septembre 2008. Au verso de l'enveloppe figure la mention manuscrite suivante : Je soussignée, E._, certifie que ce pli a été déposé à la Poste X._ le lundi 15 septembre 2008 à 22 heures. Pour faire valoir ce que de droit, E._. En cours de procédure, Me François Gillioz, avocat, a fait savoir au tribunal cantonal qu'il avait succédé à ASSUAS et que H._ était son collaborateur (lettre du 11 mai 2009). Les conclusions du recours ont été étendues au versement d'une rente entière depuis le 1er août 2002 (écritures des 26 et 29 juin 2009). Par jugement du 14 octobre 2009, la juridiction cantonale a déclaré le recours irrecevable pour cause de tardiveté. C. G._ interjette un recours en matière de droit public contre ce jugement dont elle demande l'annulation, avec suite de frais, en concluant au renvoi de la cause aux premiers juges pour complément d'instruction et nouveau jugement. L'intimé conclut au rejet du recours. Le tribunal cantonal s'en remet à justice, en précisant que la déclaration écrite apposée au dos de l'enveloppe lui a échappé et que E._ n'a pas été entendue. De son côté, l'Office fédéral des assurances sociales a renoncé à se déterminer.