Faits :
A.
Par jugement du 8 mars 2016, le Tribunal pénal de l'arrondissement de la Gruyère a condamné X._, pour crime selon l'art. 19 al. 2 let. a LStup et contravention selon l'art. 19a LStup, à une peine privative de liberté de 24 mois sous déduction de la détention avant jugement subie, ainsi qu'à une amende de 1'000 francs. Il l'a par ailleurs acquitté du chef de prévention de conduite d'un véhicule en état d'incapacité de conduire du fait de l'absorption de stupéfiants.
B.
Par arrêt du 21 décembre 2016, la Cour d'appel pénal du Tribunal cantonal du canton de Fribourg a rejeté l'appel interjeté par X._ contre ce jugement.
En substance, la cour cantonale a retenu qu'entre octobre 2014 et le 4 février 2015, X._ avait vendu ou acheté pour la vente 127,1 g d'héroïne, correspondant à 21,45 g purs selon le taux de pureté de 17% retenu sur la base de la marchandise saisie, pour un montant total de 10'380 francs. En décembre 2014, X._ a en outre vendu une quantité de 8 g de marijuana ainsi que 6 ecstasy à un nommé A._.
C.
X._ forme un recours en matière pénale au Tribunal fédéral contre l'arrêt du 21 décembre 2016, en concluant, avec suite de frais, à sa réforme en ce sens qu'il est condamné, pour délit selon l'art. 19 al. 1 LStup, à une peine pécuniaire de 90 jours-amende à 10 fr. le jour avec sursis pendant 3 ans, et qu'une indemnité pour tort moral d'un montant de 134'000 fr. lui est allouée. Il sollicite en outre le bénéfice de l'assistance judiciaire.
Considérant en droit :
1.
Le recourant demande que "la police soit requise de verser au dossier pénal toutes informations utiles" qui seraient "consignées dans ses dossiers" s'agissant des relevés rétroactifs de son téléphone portable. Il ressort cependant de l'arrêt attaqué que l'autorité précédente a notamment fondé sa décision sur lesdits relevés rétroactifs, auxquels le recourant a eu accès puisqu'il en produit une copie à l'appui de son recours. Outre qu'on ignore à quelles autres "informations" le recourant fait référence, sa conclusion est irrecevable dès lors qu'aucun fait nouveau ni preuve nouvelle ne peut être présenté au Tribunal fédéral à moins de résulter de la décision de l'autorité précédente (art. 99 al. 1 LTF).
2.
Le recourant fait grief à la cour cantonale d'avoir établi les faits de manière arbitraire.
2.1. Le Tribunal fédéral est lié par les constatations de fait de la décision entreprise (art. 105 al. 1 LTF), à moins que celles-ci n'aient été établies en violation du droit ou de manière manifestement inexacte au sens des art. 97 al. 1 et 105 al. 2 LTF, soit pour l'essentiel de façon arbitraire au sens de l'art. 9 Cst. Une décision n'est pas arbitraire du seul fait qu'elle apparaît discutable ou même critiquable; il faut qu'elle soit manifestement insoutenable, et cela non seulement dans sa motivation mais aussi dans son résultat (ATF 142 II 369 consid. 4.3 p. 380; 141 IV 305 consid. 1.2 p. 308 s.). En matière d'appréciation des preuves et d'établissement des faits, il n'y a arbitraire que lorsque l'autorité ne prend pas en compte, sans aucune raison sérieuse, un élément de preuve propre à modifier la décision, lorsqu'elle se trompe manifestement sur son sens et sa portée, ou encore lorsque, en se fondant sur les éléments recueillis, elle en tire des constatations insoutenables (ATF 140 III 264 consid. 2.3 p. 266 et les références citées). Le Tribunal fédéral n'entre ainsi pas en matière sur les critiques de nature appellatoire (ATF 142 III 364 consid. 2.4 p. 368).
2.2. La cour cantonale a retenu que le recourant avait été interpellé par la police le 4 février 2015 à B._, au volant de sa voiture, dans laquelle se trouvaient les passagers C._ et D._. Lors de la fouille du véhicule, la police avait découvert 35 g bruts d'héroïne, que les intéressés s'étaient procurés à Genève plus tôt dans la journée. Le recourant avait avoué que, depuis environ un mois, il se rendait chaque semaine à Genève afin d'acheter 5 g d'héroïne, qu'il consommait à hauteur de 2 g et revendait pour le reste. Par la suite, il avait avoué avoir vendu et acheté pour la vente 20 g d'héroïne. Un relevé rétroactif des appels téléphoniques du recourant avait toutefois permis d'identifier plusieurs personnes qui avaient ensuite avoué lui avoir acheté de la drogue. Dix-sept personnes avaient ainsi déclaré que le recourant leur avait vendu de l'héroïne. L'une d'elles avait en outre indiqué avoir acheté à l'intéressé de la marijuana et de l'ecstasy. Les différentes déclarations de ces consommateurs concordaient notamment s'agissant du mode opératoire du recourant, du lieu où il s'adonnait à son commerce ou de la qualité de la drogue vendue. Par ailleurs, C._ avait, dans le cadre de la procédure pénale dont il avait fait l'objet, déclaré qu'il s'était rendu à plusieurs reprises à Genève en compagnie du recourant et qu'il avait acheté pour le compte de celui-ci une quantité minimale de 100 g d'héroïne, drogue qu'il lui remettait immédiatement. Cette quantité correspondait plus ou moins à celle que le recourant avait vendue entre mai 2014 et février 2015. La théorie de la "vengeance ou du complot" avancée par le recourant ne s'avérait quant à elle pas crédible, dès lors que toutes les personnes identifiées sur la base du contrôle téléphonique rétroactif ne l'avaient pas incriminé, et qu'il était invraisemblable que les autres aient faussement mis en cause l'intéressé.
2.3. L'argumentation du recourant s'avère appellatoire et, partant, irrecevable, dans la mesure où celui-ci se contente de contester "intégralement les déclarations des personnes entendues par la police" et de "confirmer" ses propres déclarations. Elle est également irrecevable dans la mesure où le recourant présente comme une invraisemblance le fait qu'un seul des consommateurs interrogés par la police ait admis lui avoir acheté de la marijuana et de l'ecstasy, sans démontrer en quoi la cour cantonale aurait établi les faits de manière arbitraire sur ce point.
Le recourant soutient par ailleurs qu'il n'aurait reçu que 20 appels téléphoniques du consommateur A._. L'arrêt attaqué retient sur ce point que le prénommé a appelé le recourant à 21 reprises, mais que ce dernier a quant à lui appelé 124 fois A._ durant la période concernée. La cour cantonale a en outre retenu que toutes les transactions n'avaient pas nécessité un contact téléphonique entre les deux intéressés. On ne voit pas, quoi qu'il en soit, dans quelle mesure le nombre exact de ces contacts téléphoniques serait propre à influer sur le sort de la cause (cf. art. 97 al. 1 LTF), dès lors que le recourant ne prétend, ni ne démontre, que la quantité de marchandise écoulée auprès de A._ serait inférieure à celle retenue par l'autorité précédente. Le grief est ainsi irrecevable.
3.
Le recourant reproche à la cour cantonale d'avoir violé l'art. 19 al. 2 let. a LStup. Il conteste cependant sa condamnation non sur la base des faits retenus, dont il n'a pas démontré l'arbitraire, mais en se fondant sur les faits qu'il invoque librement. Il n'expose ainsi nullement en quoi l'arrêt attaqué violerait le droit, comme l'exige l'art. 42 al. 2 LTF. Le grief est ainsi irrecevable.
4.
Le recours est irrecevable. Comme ses conclusions étaient dépourvues de chances de succès, l'assistance judiciaire ne peut être accordée (art. 64 al. 1 LTF). Le recourant, qui succombe, supportera les frais judiciaires (art. 66 al. 1 LTF), dont le montant sera toutefois arrêté en tenant compte de sa situation financière, laquelle n'apparaît pas favorable. A noter qu'il incombait au recourant de déposer une écriture en bonne et due forme dans le délai de recours avant qu'il soit statué sur l'assistance judiciaire (cf. BERNARD CORBOZ, Commentaire de la LTF, 2ème éd., ch. 38 ad art. 64 LTF). Sa conclusion, pour autant que l'on doive la comprendre comme tendant à la désignation d'un avocat d'office, est ainsi vaine.
Par ces motifs, le Tribunal fédéral prononce :
1.
Le recours est irrecevable.
2.
La requête d'assistance judiciaire est rejetée.
3.
Les frais judiciaires, arrêtés à 1'200 fr., sont mis à la charge du recourant.
4.
Le présent arrêt est communiqué aux parties et au Tribunal cantonal de l'Etat de Fribourg, Cour d'appel pénal.
Lausanne, le 5 septembre 2017
Au nom de la Cour de droit pénal
du Tribunal fédéral suisse
Le Président : Denys
Le Greffier : Graa