Access to the electron spin is at the heart of many protocols for integrated and distributed quantum-information processing [1-4]. For instance, interfacing the spin-state of an electron and a photon can be utilized to perform quantum gates between photons [2,5] or to entangle remote spin states [6-9]. Ultimately, a quantum network of entangled spins constitutes a new paradigm in quantum optics [1]. Towards this goal, an integrated spin-photon interface would be a major leap forward. Here we demonstrate an efficient and optically programmable interface between the spin of an electron in a quantum dot and photons in a nanophotonic waveguide. The spin can be deterministically prepared with a fidelity of 96%. Subsequently the system is used to implement a single-spin photonic switch, where the spin state of the electron directs the flow of photons through the waveguide. The spin-photon interface may enable on-chip photon-photon gates [2], single-photon transistors [10], and efficient photonic cluster state generation [11].