2 votes

Comment recevoir des notifications avec l'api github en utilisant go

J'essaie d'écrire un programme go pour me connecter à l'api github et recevoir des notifications sur mon compte. Je peux obtenir des dépôts et des informations sur l'utilisateur assez facilement, mais j'ai du mal à obtenir des notifications, même si j'ai une notification sur mon compte, le tableau est toujours vide. Quelqu'un sait-il ce que je fais de travers ? Merci d'avance !

Voici mon code :

package main
import (
    "fmt"
    "log"

    "golang.org/x/net/context"

    "github.com/google/go-github/github"
    "golang.org/x/oauth2"
)

func check(err error) {
    if err != nil {
        log.Fatal(err)
    }
}

/**
 * this function is used to get the repositories of the client
 */
func getRepo(client *github.Client) []*github.Repository {
    ctx := context.Background()

    repos, _, err := client.Repositories.List(ctx, "", nil)

    check(err)

    fmt.Printf("\n%v\n", github.Stringify(repos))

    return repos
}

/**
 * this function is used to get Authentification using a oauth token
 */
func getAuth() *github.Client {
    ctx := context.Background()
    // put your own OAUTH_TOKEN
    ts := oauth2.StaticTokenSource(&oauth2.Token{AccessToken: "OAUTH_TOKEN"})

    tc := oauth2.NewClient(ctx, ts)
    client := github.NewClient(tc)

    return client
}

/**
 * this function is used to get notification on the client's account
 */
func getNotif(client *github.Client) []*github.Notification {
    ctx := context.Background()

    notifs, resp, err := client.Activity.ListRepositoryNotifications(ctx, "AlexandreMazgaj", "task_app", nil)

    fmt.Printf("Status code of the response: %d\n", resp.StatusCode)
    check(err)

    return notifs
}

func main() {
    // first we get authentification
    client := getAuth()
    // then we get the notifications
    notifs := getNotif(client)

    fmt.Printf("\n%v\n", github.Stringify(notifs))

}

0voto

alexandre Points 66

J'ai finalement trouvé la réponse, le programme fonctionne, le problème était de mon côté, je n'ai pas activé les notifications sur le web dans mes paramètres github.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X