// Fitbit recommendation: "If signature verification fails, you should
// respond with a 404"
if !fitbit.CheckSignature(ctx, data, r.Header.Get("X-Fitbit-Signature")) {
- /*
- log.Errorf(ctx, "signature mismatch")
- w.WriteHeader(http.StatusNotFound)
- return nil
- */
- } else {
- log.Warningf(ctx, "TODO(octo): re-enable signature checking, see https://community.fitbit.com/t5/Web-API-Development/Push-notification-signatures-are-currently-invalid/m-p/2496159")
+ log.Errorf(ctx, "signature mismatch")
+ w.WriteHeader(http.StatusNotFound)
+ return nil
}
if err := delayedHandleNotifications.Call(ctx, data); err != nil {
if err != nil {
return err
}
+ log.Debugf(ctx, "fitbitClient.Sleep(%v) returned %d sleep stages", tm, len(sleep.Stages))
var activities []gfit.Activity
for _, stg := range sleep.Stages {
log.Warningf(ctx, "unexpected sleep level %v", stg.Level)
continue
}
+
+ activities = append(activities, a)
}
wg.Wait()
return gfitErr
}
+ log.Debugf(ctx, "passing %d activities to gfitClient.SetActivities()", len(activities))
if err := gfitClient.SetActivities(ctx, activities, tm); err != nil {
return fmt.Errorf("SetActivities() = %v", err)
}