Generally, routing algorithms for opportunistic networks rely on the fact that nodes are willing to accept data from other nodes under any circumstances, but this is not the case. Selfish nodes might not want to participate in the routing process for various reasons, such as low resources (e.g. battery, memory, CPU, and network bandwidth), fear of malicious data from unknown users, or even lack of interest in helping nodes from other communities. Therefore, these types of nodes should be detected and avoided in the routing process. Moreover, incentive mechanisms that reward nodes when they actively take part in the network and punish them when they do not, should be employed where possible. In this paper, we propose SENSE, a novel social-based collaborative content and context-based selfish node detection algorithm with an incentive mechanism, which aims to reduce the issues of having selfish nodes in an opportunistic network. Since local information may not be sufficient to reach an informed decision, nodes running SENSE collaborate through gossiping, for the final goal of detecting selfish nodes, punishing and avoiding them. We compare our approach to an existing algorithm (IRONMAN) and show that it behaves better in terms of network performance and detection accuracy. Moreover, we show that SENSE behaves well even when we simulate the existence of devices with batteries that get depleted, thus rendering them inactive for given time periods.