Faits :
A.
A._ a travaillé en qualité de gérante de kiosque. Le 1 er octobre 2013, elle a déposé une demande de prestations de l'assurance-invalidité, invoquant des troubles de mémoire, tremblement, angoisse, troubles de concentration, vertiges, dépression, insomnie, mal de tête, nervosité, et oubli de choses.
L'Office de l'assurance-invalidité du canton de Fribourg (ci-après: l'office AI) a recueilli les avis des psychiatres B._ et C._, lesquels attestaient tous deux une incapacité totale de travailler en raison d'un trouble anxieux et dépressif (F41.2). L'administration a confié un mandat d'expertise au docteur D._, spécialiste en psychiatrie et psychothérapie, lequel n'a retenu aucun diagnostic ayant une répercussion sur la capacité de travail (rapport du 5 novembre 2014).
Par décision du 14 avril 2015, qui a fait suite à un projet du 1 er décembre 2014, l'office AI a rejeté la demande.
B.
L'assurée a déféré cette décision au Tribunal cantonal du canton de Fribourg, Cour des assurances sociales, en concluant principalement à l'octroi d'une rente d'invalidité, subsidiairement à des mesures de réadaptation, plus subsidiairement au renvoi de la cause à l'office AI pour instruction complémentaire.
Par jugement du 14 février 2017, la juridiction cantonale a rejeté le recours.
C.
A._ interjette un recours en matière de droit public et un recours constitutionnel subsidiaire contre ce jugement en concluant principalement à sa réforme dans le sens de l'octroi d'une rente entière d'invalidité, subsidiairement à son annulation et au renvoi de la cause à l'office intimé pour instruction et nouvelle décision au sens des considérants.

Considérant en droit :
1.
La décision attaquée ayant été rendue dans une cause de droit public (<ref-law>) et dans une matière - le droit fédéral des assurances sociales - où aucune des clauses d'exception de l'<ref-law> ne s'applique, la voie du recours en matière de droit public est ouverte. Partant, il n'y a pas lieu d'entrer en matière sur le recours constitutionnel subsidiaire interjeté par la recourante.
2.
Le recours en matière de droit public peut être formé pour violation du droit, tel qu'il est délimité par les art. 95 et 96 LTF. Le Tribunal fédéral applique le droit d'office (<ref-law>). Il fonde par ailleurs son raisonnement sur les faits retenus par la juridiction de première instance (<ref-law>) sauf s'ils ont été établis de façon manifestement inexacte ou en violation du droit au sens de l'<ref-law> (<ref-law>). La partie recourante qui entend s'écarter des faits constatés doit expliquer de manière circonstanciée en quoi les conditions de l'<ref-law> sont réalisées sinon un état de fait divergent ne peut être pris en considération.
3.
Le litige porte sur le degré d'invalidité de la recourante et son droit à une rente de l'assurance-invalidité.
Le jugement entrepris expose correctement les règles applicables à la solution du litige, si bien qu'il suffit d'y renvoyer (consid. 2 et 3).
4.
Les premiers juges ont résumé les explications du docteur D._ (p. 14-17 du rapport d'expertise du 5 novembre 2014), où ce médecin justifiait son diagnostic (trouble anxieux et dépressif mixte [F41.2] et accentuation de traits de la personnalité émotionnellement labile et histrionique [Z73.1]) et considérait qu'il n'existait pas d'atteinte à la santé incapacitante. Ils ont également tenu compte des opinions divergentes des docteurs B._ et C._ à cet égard, puis exposé les motifs qui les ont conduits à reconnaître pleine force probante au rapport d'expertise du docteur D._ et à admettre que son appréciation devait prévaloir sur celle de ses confrères (consid. 4c-d du jugement attaqué, p. 5-10).
Par ailleurs, à l'examen des rapports des docteurs B._ et C._, le tribunal cantonal a considéré que le contexte de la demande de prestations était manifestement marqué par des éléments qui n'avaient pas valeur de maladie (consid. 4e/aa p. 10-11), mettant aussi en évidence d'autres facteurs ne relevant pas de l'assurance-invalidité (consid. 4e/bb p. 11).
5.
La recourante se plaint d'une violation des art. 42 et 61 let. c LPGA, en soutenant que l'autorité de recours aurait dû la soumettre à une nouvelle expertise auprès d'un autre médecin indépendant afin de dissiper tout doute qu'elle pouvait avoir. En particulier, elle allègue qu'elle n'a pas eu la possibilité de s'exprimer sur l'expertise ni de récuser l'expert, contrairement à ce que prévoit l'<ref-law>.
Par ailleurs, invoquant une violation de l'art. 8 al. 1 en relation avec l'<ref-law>, la recourante estime qu'il ne fait aucun doute, au vu des rapports d'expertise des docteurs B._ et C._, que son incapacité de travail est totale pour une durée indéterminée, singulièrement dans la gestion d'un magasin, et qu'une réadaptation dans une autre branche d'activité n'est pas possible. Elle soutient que les conclusions de l'expert D._ ne sauraient l'emporter sur celles de ses confrères prénommés.
6.
Le grief tiré d'une violation de l'<ref-law> est infondé. En effet, par lettre du 14 avril 2014, la recourante avait été informée par l'intimé de la nomination du docteur D._ en qualité d'expert et la liste des questions posées à ce médecin lui avait été soumise; elle avait simultanément été rendue attentive à la faculté de récuser l'expert, ce qu'elle n'a pas fait. Par la suite, le dossier complet a été communiqué à son précédent mandataire qui s'est déterminé à ce sujet par lettre du 12 février 2015.
Quant aux griefs portant sur l'étendue de la capacité de travail, ils relèvent d'une argumentation largement appellatoire, qui n'est d'aucun secours à la recourante (consid. 2 supra). En effet, cette dernière oppose uniquement sa propre appréciation de la situation, ce qui ne suffit pas pour remettre en cause la pertinence des constatations de fait de l'autorité précédente (cf. <ref-law>). Dans ce contexte, la valeur probante de rapports médicaux ne saurait être appréciée à la lumière des seules conclusions figurant dans ces documents, mais elle obéit à des critères jurisprudentiels (cf. <ref-ruling> consid. 3a p. 352) que la recourante n'a pas abordés. Les faits constatés lient donc la Cour de céans (<ref-law>).
Vu ce qui précède, le recours en matière de droit public est manifestement infondé et doit être rejeté selon la procédure simplifiée prévue par l'<ref-law>.
7.
La recourante, qui succombe, supportera les frais de la procédure (<ref-law>).

Par ces motifs, le Tribunal fédéral prononce :
1.
Le recours constitutionnel subsidiaire est irrecevable.
2.
Le recours en matière de droit public est rejeté.
3.
Les frais judiciaires, arrêtés à 800 fr., sont mis à la charge de la recourante.
4.
Le présent arrêt est communiqué aux parties, au Tribunal cantonal du canton de Fribourg, Cour des assurances sociales, et à l'Office fédéral des assurances sociales.
Lucerne, le 27 octobre 2017
Au nom de la IIe Cour de droit social
du Tribunal fédéral suisse
La Présidente : Pfiffner
Le Greffier : Berthoud