func (service *Service) Open() (*Session, error) {
  var output dbus.Variant
  var path   dbus.ObjectPath
  err := service.dbus.Call("org.freedesktop.Secret.Service.OpenSession", 0, "plain", dbus.MakeVariant("")).Store(&output, &path)
  if err != nil {
    return &Session{}, err
  }
  return NewSession(service.conn, path), nil
}
OpenSession (IN String algorithm, IN Variant input, OUT Variant output, OUT ObjectPath result);
package libsecret
import "github.com/godbus/dbus"
const (
  DBusServiceName = "org.freedesktop.secrets"
  DBusPath = "/org/freedesktop/secrets"
)
type DBusObject interface {
  Path() dbus.ObjectPath
}
type Service struct {
  conn *dbus.Conn
  dbus  dbus.BusObject
}
func NewService() (*Service, error) {
  conn, err := dbus.SessionBus()
  if err != nil {
    return &Service{}, err
  }
  return &Service{
    conn: conn,
    dbus: conn.Object(DBusServiceName, DBusPath),
  }, nil
}
func (service Service) Path() dbus.ObjectPath {
  return service.dbus.Path()
}